linear_algebra.direct_sum.tensor_productMathlib.LinearAlgebra.DirectSum.TensorProduct

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 -/
-import LinearAlgebra.TensorProduct
+import LinearAlgebra.TensorProduct.Basic
 import Algebra.DirectSum.Module
 
 #align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
Diff
@@ -3,8 +3,8 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 -/
-import Mathbin.LinearAlgebra.TensorProduct
-import Mathbin.Algebra.DirectSum.Module
+import LinearAlgebra.TensorProduct
+import Algebra.DirectSum.Module
 
 #align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
 
Diff
@@ -2,15 +2,12 @@
 Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.direct_sum.tensor_product
-! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.LinearAlgebra.TensorProduct
 import Mathbin.Algebra.DirectSum.Module
 
+#align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0"
+
 /-!
 # Tensor products of direct sums
 
Diff
@@ -112,7 +112,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
   TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
-    Dfinsupp.mapRange.linearEquiv fun i => TensorProduct.comm R _ _
+    DFinsupp.mapRange.linearEquiv fun i => TensorProduct.comm R _ _
 #align tensor_product.direct_sum_right TensorProduct.directSumRight
 -/
 
@@ -154,7 +154,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
   by
   dsimp only [direct_sum_right, LinearEquiv.trans_apply, TensorProduct.comm_tmul]
   rw [direct_sum_left_tmul_lof]
-  exact Dfinsupp.mapRange_single
+  exact DFinsupp.mapRange_single
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
 -/
 
Diff
@@ -68,7 +68,7 @@ protected def directSum :
                 flip <| curry <| DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂))
         (DirectSum.toModule R _ _ fun i => map (DirectSum.lof R _ _ _) (DirectSum.lof R _ _ _)) _
         _ <;>
-    [ext (⟨i₁, i₂⟩x₁ x₂) : 4; ext (i₁ i₂ x₁ x₂) : 5]
+    [ext ⟨i₁, i₂⟩ x₁ x₂ : 4; ext i₁ i₂ x₁ x₂ : 5]
   repeat'
     first
     | rw [compr₂_apply]
Diff
@@ -53,6 +53,7 @@ variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
 
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
+#print TensorProduct.directSum /-
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
 protected def directSum :
@@ -80,7 +81,9 @@ protected def directSum :
     | rw [flip_apply]
     | rw [curry_apply]
 #align tensor_product.direct_sum TensorProduct.directSum
+-/
 
+#print TensorProduct.directSumLeft /-
 /-- Tensor products distribute over a direct sum on the left . -/
 def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
   LinearEquiv.ofLinear
@@ -103,22 +106,28 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
           simp_rw [DirectSum.toModule_lof, lift.tmul, DirectSum.toModule_lof, compr₂_apply,
             mk_apply, DirectSum.toModule_lof, rtensor_tmul])
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
+-/
 
+#print TensorProduct.directSumRight /-
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
   TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
     Dfinsupp.mapRange.linearEquiv fun i => TensorProduct.comm R _ _
 #align tensor_product.direct_sum_right TensorProduct.directSumRight
+-/
 
 variable {M₁ M₁' M₂ M₂'}
 
+#print TensorProduct.directSum_lof_tmul_lof /-
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
     TensorProduct.directSum R M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
       DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂) :=
   by simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
+-/
 
+#print TensorProduct.directSumLeft_tmul_lof /-
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
     directSumLeft R M₁ M₂' (DirectSum.lof R _ _ i x ⊗ₜ[R] y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -127,14 +136,18 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
   rw [DirectSum.toModule_lof R i]
   rfl
 #align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lof
+-/
 
+#print TensorProduct.directSumLeft_symm_lof_tmul /-
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
     (directSumLeft R M₁ M₂').symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
       DirectSum.lof R _ _ i x ⊗ₜ[R] y :=
   by rw [LinearEquiv.symm_apply_eq, direct_sum_left_tmul_lof]
 #align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmul
+-/
 
+#print TensorProduct.directSumRight_tmul_lof /-
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
     directSumRight R M₁' M₂ (x ⊗ₜ[R] DirectSum.lof R _ _ i y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -143,13 +156,16 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
   rw [direct_sum_left_tmul_lof]
   exact Dfinsupp.mapRange_single
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
+-/
 
+#print TensorProduct.directSumRight_symm_lof_tmul /-
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
     (directSumRight R M₁' M₂).symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
       x ⊗ₜ[R] DirectSum.lof R _ _ i y :=
   by rw [LinearEquiv.symm_apply_eq, direct_sum_right_tmul_lof]
 #align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmul
+-/
 
 end TensorProduct
 
Diff
@@ -67,10 +67,18 @@ protected def directSum :
                 flip <| curry <| DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂))
         (DirectSum.toModule R _ _ fun i => map (DirectSum.lof R _ _ _) (DirectSum.lof R _ _ _)) _
         _ <;>
-    [ext (⟨i₁, i₂⟩x₁ x₂) : 4;ext (i₁ i₂ x₁ x₂) : 5]
+    [ext (⟨i₁, i₂⟩x₁ x₂) : 4; ext (i₁ i₂ x₁ x₂) : 5]
   repeat'
     first
-      |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]|rw [map_tmul]|rw [lift.tmul]|rw [flip_apply]|rw [curry_apply]
+    | rw [compr₂_apply]
+    | rw [comp_apply]
+    | rw [id_apply]
+    | rw [mk_apply]
+    | rw [DirectSum.toModule_lof]
+    | rw [map_tmul]
+    | rw [lift.tmul]
+    | rw [flip_apply]
+    | rw [curry_apply]
 #align tensor_product.direct_sum TensorProduct.directSum
 
 /-- Tensor products distribute over a direct sum on the left . -/
Diff
@@ -31,9 +31,9 @@ section Ring
 
 namespace TensorProduct
 
-open TensorProduct
+open scoped TensorProduct
 
-open DirectSum
+open scoped DirectSum
 
 open LinearMap
 
Diff
@@ -53,9 +53,6 @@ variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
 
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
-/- warning: tensor_product.direct_sum -> TensorProduct.directSum is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum TensorProduct.directSumₓ'. -/
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
 protected def directSum :
@@ -76,9 +73,6 @@ protected def directSum :
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]|rw [map_tmul]|rw [lift.tmul]|rw [flip_apply]|rw [curry_apply]
 #align tensor_product.direct_sum TensorProduct.directSum
 
-/- warning: tensor_product.direct_sum_left -> TensorProduct.directSumLeft is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left TensorProduct.directSumLeftₓ'. -/
 /-- Tensor products distribute over a direct sum on the left . -/
 def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
   LinearEquiv.ofLinear
@@ -102,9 +96,6 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
             mk_apply, DirectSum.toModule_lof, rtensor_tmul])
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
 
-/- warning: tensor_product.direct_sum_right -> TensorProduct.directSumRight is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right TensorProduct.directSumRightₓ'. -/
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
   TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
@@ -113,9 +104,6 @@ def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R]
 
 variable {M₁ M₁' M₂ M₂'}
 
-/- warning: tensor_product.direct_sum_lof_tmul_lof -> TensorProduct.directSum_lof_tmul_lof is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
     TensorProduct.directSum R M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
@@ -123,9 +111,6 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
   by simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
-/- warning: tensor_product.direct_sum_left_tmul_lof -> TensorProduct.directSumLeft_tmul_lof is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
     directSumLeft R M₁ M₂' (DirectSum.lof R _ _ i x ⊗ₜ[R] y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -135,9 +120,6 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
   rfl
 #align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lof
 
-/- warning: tensor_product.direct_sum_left_symm_lof_tmul -> TensorProduct.directSumLeft_symm_lof_tmul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
     (directSumLeft R M₁ M₂').symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
@@ -145,9 +127,6 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
   by rw [LinearEquiv.symm_apply_eq, direct_sum_left_tmul_lof]
 #align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmul
 
-/- warning: tensor_product.direct_sum_right_tmul_lof -> TensorProduct.directSumRight_tmul_lof is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
     directSumRight R M₁' M₂ (x ⊗ₜ[R] DirectSum.lof R _ _ i y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -157,9 +136,6 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
   exact Dfinsupp.mapRange_single
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
 
-/- warning: tensor_product.direct_sum_right_symm_lof_tmul -> TensorProduct.directSumRight_symm_lof_tmul is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
     (directSumRight R M₁' M₂).symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
Diff
@@ -54,10 +54,7 @@ variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
 /- warning: tensor_product.direct_sum -> TensorProduct.directSum is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum TensorProduct.directSumₓ'. -/
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
@@ -80,10 +77,7 @@ protected def directSum :
 #align tensor_product.direct_sum TensorProduct.directSum
 
 /- warning: tensor_product.direct_sum_left -> TensorProduct.directSumLeft is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left TensorProduct.directSumLeftₓ'. -/
 /-- Tensor products distribute over a direct sum on the left . -/
 def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
@@ -109,10 +103,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
 
 /- warning: tensor_product.direct_sum_right -> TensorProduct.directSumRight is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right TensorProduct.directSumRightₓ'. -/
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
@@ -123,10 +114,7 @@ def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R]
 variable {M₁ M₁' M₂ M₂'}
 
 /- warning: tensor_product.direct_sum_lof_tmul_lof -> TensorProduct.directSum_lof_tmul_lof is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{succ (max (max u2 u3) u4 u5)} (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (coeFn.{max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5))} (LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) => (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1)) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) => (M₁ i₁) -> (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (coeFn.{max (succ u5) (succ (max u3 u5)), max (succ u5) (succ (max u3 u5))} (LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) (fun (_x : LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) => (M₂ i₂) -> (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (coeFn.{max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5))} (LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (fun (_x : LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) => (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (LinearMap.hasCoeToFun.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => Prod.decidableEq.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
@@ -136,10 +124,7 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
 /- warning: tensor_product.direct_sum_left_tmul_lof -> TensorProduct.directSumLeft_tmul_lof is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (coeFn.{max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4)), max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) => (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1)) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -151,10 +136,7 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
 #align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lof
 
 /- warning: tensor_product.direct_sum_left_symm_lof_tmul -> TensorProduct.directSumLeft_symm_lof_tmul is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max (max u2 u3) u4)} (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (coeFn.{max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4)), max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) => (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) -> (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -164,10 +146,7 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
 #align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmul
 
 /- warning: tensor_product.direct_sum_right_tmul_lof -> TensorProduct.directSumRight_tmul_lof is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u3 u2 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u2 u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1)) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
@@ -179,10 +158,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
 
 /- warning: tensor_product.direct_sum_right_symm_lof_tmul -> TensorProduct.directSumRight_symm_lof_tmul is a dubious translation:
-lean 3 declaration is
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u3 u2 u4)} (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u2 u3 u4)) (succ (max u3 u2 u4)), max (succ (max u2 u3 u4)) (succ (max u3 u2 u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
-but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
Diff
@@ -73,7 +73,7 @@ protected def directSum :
                 flip <| curry <| DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂))
         (DirectSum.toModule R _ _ fun i => map (DirectSum.lof R _ _ _) (DirectSum.lof R _ _ _)) _
         _ <;>
-    [ext (⟨i₁, i₂⟩x₁ x₂) : 4, ext (i₁ i₂ x₁ x₂) : 5]
+    [ext (⟨i₁, i₂⟩x₁ x₂) : 4;ext (i₁ i₂ x₁ x₂) : 5]
   repeat'
     first
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]|rw [map_tmul]|rw [lift.tmul]|rw [flip_apply]|rw [curry_apply]
@@ -126,7 +126,7 @@ variable {M₁ M₁' M₂ M₂'}
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{succ (max (max u2 u3) u4 u5)} (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (coeFn.{max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5))} (LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) => (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1)) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) => (M₁ i₁) -> (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (coeFn.{max (succ u5) (succ (max u3 u5)), max (succ u5) (succ (max u3 u5))} (LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) (fun (_x : LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) => (M₂ i₂) -> (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (coeFn.{max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5))} (LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (fun (_x : LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) => (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (LinearMap.hasCoeToFun.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => Prod.decidableEq.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
@@ -139,7 +139,7 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (coeFn.{max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4)), max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) => (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1)) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -154,7 +154,7 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max (max u2 u3) u4)} (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (coeFn.{max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4)), max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) => (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) -> (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -167,7 +167,7 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u3 u2 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u2 u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1)) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
@@ -182,7 +182,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u3 u2 u4)} (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u2 u3 u4)) (succ (max u3 u2 u4)), max (succ (max u2 u3 u4)) (succ (max u3 u2 u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2187 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6193 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
Diff
@@ -91,7 +91,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
     (lift <|
       DirectSum.toModule R _ _ fun i =>
         (mk R _ _).compr₂ <| DirectSum.lof R ι₁ (fun i => M₁ i ⊗[R] M₂') _)
-    (DirectSum.toModule R _ _ fun i => rtensor _ (DirectSum.lof R ι₁ _ _))
+    (DirectSum.toModule R _ _ fun i => rTensor _ (DirectSum.lof R ι₁ _ _))
     (DirectSum.linearMap_ext R fun i =>
       TensorProduct.ext <|
         LinearMap.ext₂ fun m₁ m₂ =>
Diff
@@ -126,7 +126,7 @@ variable {M₁ M₁' M₂ M₂'}
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{succ (max (max u2 u3) u4 u5)} (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (coeFn.{max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5))} (LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) => (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1)) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) => (M₁ i₁) -> (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (coeFn.{max (succ u5) (succ (max u3 u5)), max (succ u5) (succ (max u3 u5))} (LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) (fun (_x : LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) => (M₂ i₂) -> (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (coeFn.{max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5))} (LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (fun (_x : LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) => (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (LinearMap.hasCoeToFun.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => Prod.decidableEq.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
@@ -139,7 +139,7 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (coeFn.{max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4)), max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) => (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1)) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -154,7 +154,7 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max (max u2 u3) u4)} (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (coeFn.{max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4)), max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) => (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) -> (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -167,7 +167,7 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u3 u2 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u2 u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1)) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
@@ -182,7 +182,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u3 u2 u4)} (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u2 u3 u4)) (succ (max u3 u2 u4)), max (succ (max u2 u3 u4)) (succ (max u3 u2 u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6191 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
Diff
@@ -57,7 +57,7 @@ variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum TensorProduct.directSumₓ'. -/
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
@@ -83,7 +83,7 @@ protected def directSum :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left TensorProduct.directSumLeftₓ'. -/
 /-- Tensor products distribute over a direct sum on the left . -/
 def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
@@ -112,7 +112,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right TensorProduct.directSumRightₓ'. -/
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
@@ -126,7 +126,7 @@ variable {M₁ M₁' M₂ M₂'}
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{succ (max (max u2 u3) u4 u5)} (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (coeFn.{max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5))} (LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) => (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1)) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) => (M₁ i₁) -> (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (coeFn.{max (succ u5) (succ (max u3 u5)), max (succ u5) (succ (max u3 u5))} (LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) (fun (_x : LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) => (M₂ i₂) -> (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (coeFn.{max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5))} (LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (fun (_x : LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) => (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (LinearMap.hasCoeToFun.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => Prod.decidableEq.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
@@ -139,7 +139,7 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (coeFn.{max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4)), max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) => (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1)) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -154,7 +154,7 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max (max u2 u3) u4)} (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (coeFn.{max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4)), max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) => (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) -> (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
@@ -167,7 +167,7 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u3 u2 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u2 u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1)) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
@@ -182,7 +182,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
 lean 3 declaration is
   forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u3 u2 u4)} (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u2 u3 u4)) (succ (max u3 u2 u4)), max (succ (max u2 u3 u4)) (succ (max u3 u2 u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 but is expected to have type
-  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
 Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.direct_sum.tensor_product
-! leanprover-community/mathlib commit 9b9d125b7be0930f564a68f1d73ace10cf46064d
+! leanprover-community/mathlib commit 31ca6f9cf5f90a6206092cd7f84b359dcb6d52e0
 ! 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.DirectSum.Module
 /-!
 # Tensor products of direct sums
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 This file shows that taking `tensor_product`s commutes with taking `direct_sum`s in both arguments.
 
 ## Main results
Diff
@@ -50,6 +50,12 @@ variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
 
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
+/- warning: tensor_product.direct_sum -> TensorProduct.directSum is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] (M₁ : ι₁ -> Type.{u4}) (M₂ : ι₂ -> Type.{u5}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum TensorProduct.directSumₓ'. -/
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
 protected def directSum :
@@ -70,6 +76,12 @@ protected def directSum :
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]|rw [map_tmul]|rw [lift.tmul]|rw [flip_apply]|rw [curry_apply]
 #align tensor_product.direct_sum TensorProduct.directSum
 
+/- warning: tensor_product.direct_sum_left -> TensorProduct.directSumLeft is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] (M₁ : ι₁ -> Type.{u3}) (M₂' : Type.{u4}) [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)], LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left TensorProduct.directSumLeftₓ'. -/
 /-- Tensor products distribute over a direct sum on the left . -/
 def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
   LinearEquiv.ofLinear
@@ -93,6 +105,12 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
             mk_apply, DirectSum.toModule_lof, rtensor_tmul])
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
 
+/- warning: tensor_product.direct_sum_right -> TensorProduct.directSumRight is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] (M₁' : Type.{u3}) (M₂ : ι₂ -> Type.{u4}) [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))], LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right TensorProduct.directSumRightₓ'. -/
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
   TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
@@ -101,6 +119,12 @@ def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R]
 
 variable {M₁ M₁' M₂ M₂'}
 
+/- warning: tensor_product.direct_sum_lof_tmul_lof -> TensorProduct.directSum_lof_tmul_lof is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{succ (max (max u2 u3) u4 u5)} (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (coeFn.{max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max (max u2 u4) u3 u5)) (succ (max (max u2 u3) u4 u5))} (LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) => (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u4) u3 u5, max (max u2 u3) u4 u5} R R (TensorProduct.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.module.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₁ : ι₁) => _inst_4 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_6 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i))) ((fun (i₁ : ι₁) => _inst_8 i₁) (Prod.fst.{u2, u3} ι₁ ι₂ i)) ((fun (i₂ : ι₂) => _inst_10 i₂) (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSum._proof_1.{u1} R _inst_1) (TensorProduct.directSum._proof_2.{u1} R _inst_1)) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) (DirectSum.module.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i))) => (M₁ i₁) -> (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i₁) (DirectSum.addCommMonoid.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i)) ((fun (i : ι₁) => _inst_8 i) i₁) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) i) (fun (i : ι₁) => (fun (i : ι₁) => _inst_8 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (coeFn.{max (succ u5) (succ (max u3 u5)), max (succ u5) (succ (max u3 u5))} (LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) (fun (_x : LinearMap.{u1, u1, u5, max u3 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i))) => (M₂ i₂) -> (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i))) (LinearMap.hasCoeToFun.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i₂) (DirectSum.addCommMonoid.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i)) ((fun (i : ι₂) => _inst_10 i) i₂) (DirectSum.module.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) i) (fun (i : ι₂) => (fun (i : ι₂) => _inst_10 i) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (coeFn.{max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5)), max (succ (max u4 u5)) (succ (max (max u2 u3) u4 u5))} (LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (fun (_x : LinearMap.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) => (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) -> (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i))) (LinearMap.hasCoeToFun.{u1, u1, max u4 u5, max (max u2 u3) u4 u5} R R ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.addCommMonoid.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) ((fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (DirectSum.module.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i) (fun (i : Prod.{u2, u3} ι₁ ι₂) => (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => Prod.decidableEq.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.module.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} {ι₂ : Type.{u3}} [_inst_2 : DecidableEq.{succ u2} ι₁] [_inst_3 : DecidableEq.{succ u3} ι₂] {M₁ : ι₁ -> Type.{u4}} {M₂ : ι₂ -> Type.{u5}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u4} (M₁ i₁)] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u5} (M₂ i₂)] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u4} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁))] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u5} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂))] (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂), Eq.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (a : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (a : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₁ : ι₂) => M₂ i₁) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (SMulHomClass.toFunLike.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toZero.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribSMul.toSMulZeroClass.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddMonoid.toAddZeroClass.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))) (DistribMulAction.toDistribSMul.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max (max u2 u3) u4) u5, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max (max u2 u3) u4) u5} (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max (max u2 u3) u4) u5} R (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (LinearEquiv.{u1, u1, max (max u5 u3) u4 u2, max (max u5 u4) u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max (max u2 u3) u4) u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, max u4 u2, max u5 u3} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{max u2 u3, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{max u2 u3, max u4 u5} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u2 u3, max u4 u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSum.{u1, u2, u3, u4, u5} R _inst_1 ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁ M₂ (fun (i₁ : ι₁) => _inst_4 i₁) (fun (i₂ : ι₂) => _inst_6 i₂) (fun (i₁ : ι₁) => _inst_8 i₁) (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, max u2 u4, max u3 u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (DirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i₂ : ι₂) => M₂ i₂) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} ((fun (i₂ : ι₂) => M₂ i₂) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i₁) (fun (_x : M₁ i₁) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i₁) => DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₁ i₁) (DirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ i₁) (_inst_4 i₁)) (instAddCommMonoidDirectSum.{u2, u4} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i))) (_inst_8 i₁) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u4} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i) i₁) m₁) (FunLike.coe.{max (succ u3) (succ u5), succ u5, max (succ u3) (succ u5)} (LinearMap.{u1, u1, u5, max u5 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i₂) (fun (_x : M₂ i₂) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i₂) => DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u5, max u3 u5} R R (M₂ i₂) (DirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u5} (M₂ i₂) (_inst_6 i₂)) (instAddCommMonoidDirectSum.{u3, u5} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i))) (_inst_10 i₂) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u3, u5} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u5} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i) i₂) m₂))) (FunLike.coe.{max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5), max (succ u4) (succ u5), max (max (max (succ u2) (succ u3)) (succ u4)) (succ u5)} (LinearMap.{u1, u1, max u5 u4, max (max u5 u4) u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))))) (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (fun (_x : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) => DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u4 u5, max (max (max u2 u3) u4) u5} R R (TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (instAddCommMonoidDirectSum.{max u3 u2, max u5 u4} (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, max u3 u2, max u5 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Prod.{u2, u3} ι₁ ι₂) (fun (a : Prod.{u2, u3} ι₁ ι₂) (b : Prod.{u2, u3} ι₁ ι₂) => instDecidableEqProd.{u2, u3} ι₁ ι₂ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (a : ι₂) (b : ι₂) => _inst_3 a b) a b) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.addCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (fun (i : Prod.{u2, u3} ι₁ ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ i))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ i)) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ i)) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ i))) (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)) (TensorProduct.tmul.{u1, u4, u5} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (AddCommGroup.toAddCommMonoid.{u4} (M₁ (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_4 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (AddCommGroup.toAddCommMonoid.{u5} (M₂ (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_6 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂)))) (_inst_8 (Prod.fst.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) (_inst_10 (Prod.snd.{u2, u3} ι₁ ι₂ (Prod.mk.{u2, u3} ι₁ ι₂ i₁ i₂))) m₁ m₂))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lofₓ'. -/
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
     TensorProduct.directSum R M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
@@ -108,6 +132,12 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
   by simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
+/- warning: tensor_product.direct_sum_left_tmul_lof -> TensorProduct.directSumLeft_tmul_lof is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (coeFn.{max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4)), max (succ (max (max u2 u3) u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (fun (_x : LinearEquiv.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) => (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearEquiv.hasCoeToFun.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1)) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (a : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (fun (_x : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) => DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (LinearEquiv.{u1, u1, max u4 u3 u2, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lofₓ'. -/
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
     directSumLeft R M₁ M₂' (DirectSum.lof R _ _ i x ⊗ₜ[R] y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -117,6 +147,12 @@ theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
   rfl
 #align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lof
 
+/- warning: tensor_product.direct_sum_left_symm_lof_tmul -> TensorProduct.directSumLeft_symm_lof_tmul is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{succ (max (max u2 u3) u4)} (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (coeFn.{max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4)), max (succ (max u2 u3 u4)) (succ (max (max u2 u3) u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) => (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) -> (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11)) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max u2 u3 u4} R R (TensorProduct.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumLeft._proof_1.{u1} R _inst_1) (TensorProduct.directSumLeft._proof_2.{u1} R _inst_1) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) -> (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11)) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) ((fun (i₁ : ι₁) => _inst_8 i₁) i) _inst_11) (fun (i : ι₁) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) M₂' (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.module.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => (fun (i₁ : ι₁) => _inst_8 i₁) i)) _inst_11 (coeFn.{max (succ u3) (succ (max u2 u3)), max (succ u3) (succ (max u2 u3))} (LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) (fun (_x : LinearMap.{u1, u1, u3, max u2 u3} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i))) => (M₁ i) -> (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)))) (LinearMap.hasCoeToFun.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (DirectSum.addCommMonoid.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i))) (_inst_8 i) (DirectSum.module.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) ((fun (i₁ : ι₁) => _inst_4 i₁) i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₁ : Type.{u2}} [_inst_2 : DecidableEq.{succ u2} ι₁] {M₁ : ι₁ -> Type.{u3}} {M₂' : Type.{u4}} [_inst_4 : forall (i₁ : ι₁), AddCommGroup.{u3} (M₁ i₁)] [_inst_7 : AddCommGroup.{u4} M₂'] [_inst_8 : forall (i₁ : ι₁), Module.{u1, u3} R (M₁ i₁) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁))] [_inst_11 : Module.{u1, u4} R M₂' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7)] (i : ι₁) (x : M₁ i) (y : M₂'), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (fun (_x : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) => TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i₁) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i₁) (_inst_4 i₁)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i₁) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, max u3 u2, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.{u2, max u4 u3} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (DirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} ((fun (i₁ : ι₁) => M₁ i₁) i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.directSumLeft.{u1, u2, u3, u4} R _inst_1 ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ M₂' (fun (i₁ : ι₁) => _inst_4 i₁) _inst_7 (fun (i₁ : ι₁) => _inst_8 i₁) _inst_11)) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) => DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) (fun (i : ι₁) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) (fun (i : ι₁) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) (M₁ i) M₂' (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (_inst_8 i) _inst_11 x y))) (TensorProduct.tmul.{u1, max u2 u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) x) M₂' (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u4} M₂' _inst_7) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₁ (fun (i₁ : ι₁) => M₁ i₁) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) _inst_11 (FunLike.coe.{max (succ u2) (succ u3), succ u3, max (succ u2) (succ u3)} (LinearMap.{u1, u1, u3, max u3 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i))) (M₁ i) (fun (_x : M₁ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₁ i) => DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u3, max u2 u3} R R (M₁ i) (DirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (instAddCommMonoidDirectSum.{u2, u3} ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i))) (_inst_8 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (i : ι₁) => M₁ i) (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i : ι₁) => _inst_8 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u3} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₁ (fun (a : ι₁) (b : ι₁) => _inst_2 a b) M₁ (fun (i : ι₁) => AddCommGroup.toAddCommMonoid.{u3} (M₁ i) (_inst_4 i)) (fun (i₁ : ι₁) => _inst_8 i₁) i) x) y)
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
     (directSumLeft R M₁ M₂').symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
@@ -124,6 +160,12 @@ theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
   by rw [LinearEquiv.symm_apply_eq, direct_sum_left_tmul_lof]
 #align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmul
 
+/- warning: tensor_product.direct_sum_right_tmul_lof -> TensorProduct.directSumRight_tmul_lof is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u2 u3 u4)} (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u3 u2 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u2 u4)) (succ (max u2 u3 u4))} (LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1)) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (a : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) => DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (LinearEquiv.{u1, u1, max (max u4 u2) u3, max (max u4 u3) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂)) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lofₓ'. -/
 @[simp]
 theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
     directSumRight R M₁' M₂ (x ⊗ₜ[R] DirectSum.lof R _ _ i y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
@@ -133,6 +175,12 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
   exact Dfinsupp.mapRange_single
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
 
+/- warning: tensor_product.direct_sum_right_symm_lof_tmul -> TensorProduct.directSumRight_symm_lof_tmul is a dubious translation:
+lean 3 declaration is
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{succ (max u3 u2 u4)} (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (coeFn.{max (succ (max u2 u3 u4)) (succ (max u3 u2 u4)), max (succ (max u2 u3 u4)) (succ (max u3 u2 u4))} (LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (fun (_x : LinearEquiv.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) => (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) -> (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearEquiv.hasCoeToFun.{u1, u1, max u2 u3 u4, max u3 u2 u4} R R (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1)) (LinearEquiv.symm.{u1, u1, max u3 u2 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i))) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.directSumRight._proof_1.{u1} R _inst_1) (TensorProduct.directSumRight._proof_2.{u1} R _inst_1) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (coeFn.{max (succ (max u3 u4)) (succ (max u2 u3 u4)), max (succ (max u3 u4)) (succ (max u2 u3 u4))} (LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (fun (_x : LinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) => (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) -> (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (DirectSum.addCommMonoid.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i))) (TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.module.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) _inst_9 ((fun (i₂ : ι₂) => _inst_10 i₂) i)) (fun (i : ι₂) => TensorProduct.module.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) _inst_9 (DirectSum.module.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => (fun (i₂ : ι₂) => _inst_10 i₂) i)) x (coeFn.{max (succ u4) (succ (max u2 u4)), max (succ u4) (succ (max u2 u4))} (LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) (fun (_x : LinearMap.{u1, u1, u4, max u2 u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i))) => (M₂ i) -> (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)))) (LinearMap.hasCoeToFun.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (DirectSum.addCommMonoid.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i))) (_inst_10 i) (DirectSum.module.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) ((fun (i₂ : ι₂) => _inst_6 i₂) i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+but is expected to have type
+  forall (R : Type.{u1}) [_inst_1 : CommRing.{u1} R] {ι₂ : Type.{u2}} [_inst_3 : DecidableEq.{succ u2} ι₂] {M₁' : Type.{u3}} {M₂ : ι₂ -> Type.{u4}} [_inst_5 : AddCommGroup.{u3} M₁'] [_inst_6 : forall (i₂ : ι₂), AddCommGroup.{u4} (M₂ i₂)] [_inst_9 : Module.{u1, u3} R M₁' (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5)] [_inst_10 : forall (i₂ : ι₂), Module.{u1, u4} R (M₂ i₂) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i₂) (_inst_6 i₂))] (x : M₁') (i : ι₂) (y : M₂ i), Eq.{max (max (succ u2) (succ u3)) (succ u4)} ((fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (a : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) a) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (FunLike.coe.{max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4), max (max (succ u2) (succ u3)) (succ u4)} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (fun (_x : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => (fun (x._@.Mathlib.Algebra.Hom.GroupAction._hyg.2186 : DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) => TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) _x) (SMulHomClass.toFunLike.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))))))) (SMulZeroClass.toSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toZero.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribSMul.toSMulZeroClass.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddMonoid.toAddZeroClass.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))) (DistribMulAction.toDistribSMul.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))))))) (DistribMulActionHomClass.toSMulHomClass.{max (max u2 u3) u4, u1, max (max u2 u3) u4, max (max u2 u3) u4} (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (MonoidWithZero.toMonoid.{u1} R (Semiring.toMonoidWithZero.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (AddCommMonoid.toAddMonoid.{max (max u2 u3) u4} (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (Module.toDistribMulAction.{u1, max (max u2 u3) u4} R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (SemilinearMapClass.distribMulActionHomClass.{u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (SemilinearEquivClass.instSemilinearMapClass.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (LinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (LinearEquiv.instSemilinearEquivClassLinearEquiv.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))))))) (LinearEquiv.symm.{u1, u1, max (max u2 u3) u4, max (max u2 u3) u4} R R (TensorProduct.{u1, u3, max u4 u2} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.{u2, max u4 u3} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} ((fun (i : ι₂) => M₂ i) i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (NonAssocRing.toNonAssocSemiring.{u1} R (Ring.toNonAssocRing.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (RingHomInvPair.ids.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))) (TensorProduct.directSumRight.{u1, u2, u3, u4} R _inst_1 ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₁' M₂ _inst_5 (fun (i₂ : ι₂) => _inst_6 i₂) _inst_9 (fun (i₂ : ι₂) => _inst_10 i₂))) (FunLike.coe.{max (succ u2) (succ (max u3 u4)), succ (max u3 u4), max (succ u2) (succ (max u3 u4))} (LinearMap.{u1, u1, max u3 u4, max (max u3 u4) u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)))) (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (_x : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) => DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, max u3 u4, max u2 u3 u4} R R (TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (instAddCommMonoidDirectSum.{u2, max u3 u4} ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i))) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, max u3 u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) (fun (i : ι₂) => TensorProduct.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.addCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) (fun (i : ι₂) => TensorProduct.instModuleTensorProductToSemiringAddCommMonoid.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i)) i) (TensorProduct.tmul.{u1, u3, u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' (M₂ i) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) _inst_9 (_inst_10 i) x y))) (TensorProduct.tmul.{u1, u3, max u2 u4} R (CommRing.toCommSemiring.{u1} R _inst_1) M₁' ((fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) y) (AddCommGroup.toAddCommMonoid.{u3} M₁' _inst_5) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _inst_9 (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (CommSemiring.toSemiring.{u1} R (CommRing.toCommSemiring.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) x (FunLike.coe.{max (succ u2) (succ u4), succ u4, max (succ u2) (succ u4)} (LinearMap.{u1, u1, u4, max u4 u2} R R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)))) (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i))) (M₂ i) (fun (_x : M₂ i) => (fun (x._@.Mathlib.Algebra.Module.LinearMap._hyg.6190 : M₂ i) => DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) _x) (LinearMap.instFunLikeLinearMap.{u1, u1, u4, max u2 u4} R R (M₂ i) (DirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) (AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (instAddCommMonoidDirectSum.{u2, u4} ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i))) (_inst_10 i) (DirectSum.instModuleDirectSumInstAddCommMonoidDirectSum.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (i : ι₂) => M₂ i) (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i : ι₂) => _inst_10 i)) (RingHom.id.{u1} R (Semiring.toNonAssocSemiring.{u1} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1))))) (DirectSum.lof.{u1, u2, u4} R (Ring.toSemiring.{u1} R (CommRing.toRing.{u1} R _inst_1)) ι₂ (fun (a : ι₂) (b : ι₂) => _inst_3 a b) M₂ (fun (i : ι₂) => AddCommGroup.toAddCommMonoid.{u4} (M₂ i) (_inst_6 i)) (fun (i₂ : ι₂) => _inst_10 i₂) i) y))
+Case conversion may be inaccurate. Consider using '#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmulₓ'. -/
 @[simp]
 theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
     (directSumRight R M₁' M₂).symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
Diff
@@ -1,10 +1,10 @@
 /-
 Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
-Authors: Kenny Lau, Mario Carneiro
+Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 
 ! This file was ported from Lean 3 source module linear_algebra.direct_sum.tensor_product
-! leanprover-community/mathlib commit 5b29630d4ae17ff600c5c90857d606bea111a776
+! leanprover-community/mathlib commit 9b9d125b7be0930f564a68f1d73ace10cf46064d
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -15,6 +15,12 @@ import Mathbin.Algebra.DirectSum.Module
 # Tensor products of direct sums
 
 This file shows that taking `tensor_product`s commutes with taking `direct_sum`s in both arguments.
+
+## Main results
+
+* `tensor_product.direct_sum`
+* `tensor_product.direct_sum_left`
+* `tensor_product.direct_sum_right`
 -/
 
 
@@ -32,19 +38,22 @@ attribute [local ext] TensorProduct.ext
 
 variable (R : Type _) [CommRing R]
 
-variable (ι₁ : Type _) (ι₂ : Type _)
+variable {ι₁ : Type _} {ι₂ : Type _}
 
 variable [DecidableEq ι₁] [DecidableEq ι₂]
 
-variable (M₁ : ι₁ → Type _) (M₂ : ι₂ → Type _)
+variable (M₁ : ι₁ → Type _) (M₁' : Type _) (M₂ : ι₂ → Type _) (M₂' : Type _)
 
-variable [∀ i₁, AddCommGroup (M₁ i₁)] [∀ i₂, AddCommGroup (M₂ i₂)]
+variable [∀ i₁, AddCommGroup (M₁ i₁)] [AddCommGroup M₁']
 
-variable [∀ i₁, Module R (M₁ i₁)] [∀ i₂, Module R (M₂ i₂)]
+variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
+
+variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
-def directSum : ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 :=
+protected def directSum :
+    ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 :=
   by
   refine'
       LinearEquiv.ofLinear
@@ -61,13 +70,76 @@ def directSum : ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]|rw [map_tmul]|rw [lift.tmul]|rw [flip_apply]|rw [curry_apply]
 #align tensor_product.direct_sum TensorProduct.directSum
 
+/-- Tensor products distribute over a direct sum on the left . -/
+def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i ⊗[R] M₂' :=
+  LinearEquiv.ofLinear
+    (lift <|
+      DirectSum.toModule R _ _ fun i =>
+        (mk R _ _).compr₂ <| DirectSum.lof R ι₁ (fun i => M₁ i ⊗[R] M₂') _)
+    (DirectSum.toModule R _ _ fun i => rtensor _ (DirectSum.lof R ι₁ _ _))
+    (DirectSum.linearMap_ext R fun i =>
+      TensorProduct.ext <|
+        LinearMap.ext₂ fun m₁ m₂ =>
+          by
+          dsimp only [comp_apply, compr₂_apply, id_apply, mk_apply]
+          simp_rw [DirectSum.toModule_lof, rtensor_tmul, lift.tmul, DirectSum.toModule_lof,
+            compr₂_apply, mk_apply])
+    (TensorProduct.ext <|
+      DirectSum.linearMap_ext R fun i =>
+        LinearMap.ext₂ fun m₁ m₂ =>
+          by
+          dsimp only [comp_apply, compr₂_apply, id_apply, mk_apply]
+          simp_rw [DirectSum.toModule_lof, lift.tmul, DirectSum.toModule_lof, compr₂_apply,
+            mk_apply, DirectSum.toModule_lof, rtensor_tmul])
+#align tensor_product.direct_sum_left TensorProduct.directSumLeft
+
+/-- Tensor products distribute over a direct sum on the right. -/
+def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
+  TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
+    Dfinsupp.mapRange.linearEquiv fun i => TensorProduct.comm R _ _
+#align tensor_product.direct_sum_right TensorProduct.directSumRight
+
+variable {M₁ M₁' M₂ M₂'}
+
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
-    directSum R ι₁ ι₂ M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
+    TensorProduct.directSum R M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
       DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂) :=
-  by simp [DirectSum]
+  by simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
+@[simp]
+theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
+    directSumLeft R M₁ M₂' (DirectSum.lof R _ _ i x ⊗ₜ[R] y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
+  by
+  dsimp only [direct_sum_left, LinearEquiv.ofLinear_apply, lift.tmul]
+  rw [DirectSum.toModule_lof R i]
+  rfl
+#align tensor_product.direct_sum_left_tmul_lof TensorProduct.directSumLeft_tmul_lof
+
+@[simp]
+theorem directSumLeft_symm_lof_tmul (i : ι₁) (x : M₁ i) (y : M₂') :
+    (directSumLeft R M₁ M₂').symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
+      DirectSum.lof R _ _ i x ⊗ₜ[R] y :=
+  by rw [LinearEquiv.symm_apply_eq, direct_sum_left_tmul_lof]
+#align tensor_product.direct_sum_left_symm_lof_tmul TensorProduct.directSumLeft_symm_lof_tmul
+
+@[simp]
+theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
+    directSumRight R M₁' M₂ (x ⊗ₜ[R] DirectSum.lof R _ _ i y) = DirectSum.lof R _ _ i (x ⊗ₜ[R] y) :=
+  by
+  dsimp only [direct_sum_right, LinearEquiv.trans_apply, TensorProduct.comm_tmul]
+  rw [direct_sum_left_tmul_lof]
+  exact Dfinsupp.mapRange_single
+#align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
+
+@[simp]
+theorem directSumRight_symm_lof_tmul (x : M₁') (i : ι₂) (y : M₂ i) :
+    (directSumRight R M₁' M₂).symm (DirectSum.lof R _ _ i (x ⊗ₜ[R] y)) =
+      x ⊗ₜ[R] DirectSum.lof R _ _ i y :=
+  by rw [LinearEquiv.symm_apply_eq, direct_sum_right_tmul_lof]
+#align tensor_product.direct_sum_right_symm_lof_tmul TensorProduct.directSumRight_symm_lof_tmul
+
 end TensorProduct
 
 end Ring

Changes in mathlib4

mathlib3
mathlib4
feat: Generalize Basis.tensorProduct to heterobasic version (#11844)

In order to achieve this, finsuppTensorFinsupp and TensorProduct.directSum are also heterobasic now.

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 -/
-import Mathlib.LinearAlgebra.TensorProduct.Basic
+import Mathlib.LinearAlgebra.TensorProduct.Tower
 import Mathlib.Algebra.DirectSum.Module
 
 #align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"9b9d125b7be0930f564a68f1d73ace10cf46064d"
@@ -35,45 +35,47 @@ open LinearMap
 
 attribute [local ext] TensorProduct.ext
 
-variable (R : Type u) [CommSemiring R]
+variable (R : Type u) [CommSemiring R] (S) [CommSemiring S] [Algebra R S]
 variable {ι₁ : Type v₁} {ι₂ : Type v₂}
 variable [DecidableEq ι₁] [DecidableEq ι₂]
 variable (M₁ : ι₁ → Type w₁) (M₁' : Type w₁') (M₂ : ι₂ → Type w₂) (M₂' : Type w₂')
 variable [∀ i₁, AddCommMonoid (M₁ i₁)] [AddCommMonoid M₁']
 variable [∀ i₂, AddCommMonoid (M₂ i₂)] [AddCommMonoid M₂']
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
+variable [∀ i₁, Module S (M₁ i₁)] [∀ i₁, IsScalarTower R S (M₁ i₁)]
 
 
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
 protected def directSum :
-    ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 := by
+    ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[S] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 := by
   -- Porting note: entirely rewritten to allow unification to happen one step at a time
-  refine LinearEquiv.ofLinear (R := R) (R₂ := R) ?toFun ?invFun ?left ?right
-  · refine lift ?_
-    refine DirectSum.toModule R _ _ fun i₁ => ?_
+  refine LinearEquiv.ofLinear (R := S) (R₂ := S) ?toFun ?invFun ?left ?right
+  · refine AlgebraTensorModule.lift ?_
+    refine DirectSum.toModule S _ _ fun i₁ => ?_
     refine LinearMap.flip ?_
     refine DirectSum.toModule R _ _ fun i₂ => LinearMap.flip <| ?_
-    refine curry ?_
-    exact DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂)
-  · refine DirectSum.toModule R _ _ fun i => ?_
-    exact map (DirectSum.lof R _ M₁ i.1) (DirectSum.lof R _ M₂ i.2)
-  · refine DirectSum.linearMap_ext R fun ⟨i₁, i₂⟩ => ?_
-    refine TensorProduct.ext ?_
-    refine LinearMap.ext₂ fun m₁ m₂ => ?_
+    refine AlgebraTensorModule.curry ?_
+    exact DirectSum.lof S (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂)
+  · refine DirectSum.toModule S _ _ fun i => ?_
+    exact AlgebraTensorModule.map (DirectSum.lof S _ M₁ i.1) (DirectSum.lof R _ M₂ i.2)
+  · refine DirectSum.linearMap_ext S fun ⟨i₁, i₂⟩ => ?_
+    refine TensorProduct.AlgebraTensorModule.ext fun m₁ m₂ => ?_
     -- Porting note: seems much nicer than the `repeat` lean 3 proof.
-    simp only [compr₂_apply, comp_apply, id_apply, mk_apply, DirectSum.toModule_lof, map_tmul,
-        lift.tmul, flip_apply, curry_apply]
+    simp only [coe_comp, Function.comp_apply, toModule_lof, AlgebraTensorModule.map_tmul,
+      AlgebraTensorModule.lift_apply, lift.tmul, coe_restrictScalars, flip_apply,
+      AlgebraTensorModule.curry_apply, curry_apply, id_comp]
   · -- `(_)` prevents typeclass search timing out on problems that can be solved immediately by
     -- unification
-    refine TensorProduct.ext ?_
+    apply TensorProduct.AlgebraTensorModule.curry_injective
     refine DirectSum.linearMap_ext _ fun i₁ => ?_
     refine LinearMap.ext fun x₁ => ?_
     refine DirectSum.linearMap_ext _ fun i₂ => ?_
     refine LinearMap.ext fun x₂ => ?_
     -- Porting note: seems much nicer than the `repeat` lean 3 proof.
-    simp only [compr₂_apply, comp_apply, id_apply, mk_apply, DirectSum.toModule_lof, map_tmul,
-        lift.tmul, flip_apply, curry_apply]
+    simp only [coe_comp, Function.comp_apply, AlgebraTensorModule.curry_apply, curry_apply,
+      coe_restrictScalars, AlgebraTensorModule.lift_apply, lift.tmul, toModule_lof, flip_apply,
+      AlgebraTensorModule.map_tmul, id_coe, id_eq]
   /- was:
 
     refine'
@@ -146,16 +148,16 @@ variable {M₁ M₁' M₂ M₂'}
 
 @[simp]
 theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
-    TensorProduct.directSum R M₁ M₂ (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
-      DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂) := by
+    TensorProduct.directSum R S M₁ M₂ (DirectSum.lof S ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) =
+      DirectSum.lof S (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂) := by
   simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
 @[simp]
 theorem directSum_symm_lof_tmul (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
-    (TensorProduct.directSum R M₁ M₂).symm
-      (DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂)) =
-      (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) := by
+    (TensorProduct.directSum R S M₁ M₂).symm
+      (DirectSum.lof S (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂)) =
+      (DirectSum.lof S ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) := by
   rw [LinearEquiv.symm_apply_eq, directSum_lof_tmul_lof]
 
 @[simp]
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
@@ -36,17 +36,11 @@ open LinearMap
 attribute [local ext] TensorProduct.ext
 
 variable (R : Type u) [CommSemiring R]
-
 variable {ι₁ : Type v₁} {ι₂ : Type v₂}
-
 variable [DecidableEq ι₁] [DecidableEq ι₂]
-
 variable (M₁ : ι₁ → Type w₁) (M₁' : Type w₁') (M₂ : ι₂ → Type w₂) (M₂' : Type w₂')
-
 variable [∀ i₁, AddCommMonoid (M₁ i₁)] [AddCommMonoid M₁']
-
 variable [∀ i₂, AddCommMonoid (M₂ i₂)] [AddCommMonoid M₂']
-
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
 
Acl/reorg tensor product (#11282)

Move:

  • Mathlib/Algebra/Module/DirectLimitAndTensorProduct.lean to LinearAlgebra/TensorProduct/DirectLimit.lean
  • Mathlib/LinearAlgebra/TensorProduct to Mathlib/LinearAlgebra.TensorProduct.Basic.lean
  • Mathlib/RingTheory/TensorProduct to Mathlib/RingTheory/TensorProduct/Basic.lean.

This follows suggestions 1, 2, 3 of

https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Tensor.20Products.20of.20modules.20and.20rings/near/424605543

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>

Diff
@@ -3,7 +3,7 @@ Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
 -/
-import Mathlib.LinearAlgebra.TensorProduct
+import Mathlib.LinearAlgebra.TensorProduct.Basic
 import Mathlib.Algebra.DirectSum.Module
 
 #align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"9b9d125b7be0930f564a68f1d73ace10cf46064d"
style: homogenise porting notes (#11145)

Homogenises porting notes via capitalisation and addition of whitespace.

It makes the following changes:

  • converts "--porting note" into "-- Porting note";
  • converts "porting note" into "Porting note".
Diff
@@ -54,7 +54,7 @@ variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (
 "tensor product distributes over direct sum". -/
 protected def directSum :
     ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 := by
-  -- porting note: entirely rewritten to allow unification to happen one step at a time
+  -- Porting note: entirely rewritten to allow unification to happen one step at a time
   refine LinearEquiv.ofLinear (R := R) (R₂ := R) ?toFun ?invFun ?left ?right
   · refine lift ?_
     refine DirectSum.toModule R _ _ fun i₁ => ?_
@@ -67,7 +67,7 @@ protected def directSum :
   · refine DirectSum.linearMap_ext R fun ⟨i₁, i₂⟩ => ?_
     refine TensorProduct.ext ?_
     refine LinearMap.ext₂ fun m₁ m₂ => ?_
-    -- porting note: seems much nicer than the `repeat` lean 3 proof.
+    -- Porting note: seems much nicer than the `repeat` lean 3 proof.
     simp only [compr₂_apply, comp_apply, id_apply, mk_apply, DirectSum.toModule_lof, map_tmul,
         lift.tmul, flip_apply, curry_apply]
   · -- `(_)` prevents typeclass search timing out on problems that can be solved immediately by
@@ -77,7 +77,7 @@ protected def directSum :
     refine LinearMap.ext fun x₁ => ?_
     refine DirectSum.linearMap_ext _ fun i₂ => ?_
     refine LinearMap.ext fun x₂ => ?_
-    -- porting note: seems much nicer than the `repeat` lean 3 proof.
+    -- Porting note: seems much nicer than the `repeat` lean 3 proof.
     simp only [compr₂_apply, comp_apply, id_apply, mk_apply, DirectSum.toModule_lof, map_tmul,
         lift.tmul, flip_apply, curry_apply]
   /- was:
feat: generalize direct sum results to avoid negation (#10828)

Three files are modified, where the hypotheses are relaxed from Ring or CommRing to Semiring or CommSemiring, and AddCommGroup to AddCommMonoid. Besides this, no definition is changed, and for one proof in RingTheory.Flat.Basic, I needed to add an instance (letI…) in the proof. (Everything pertains to direct sums of modules.)

Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr> Co-authored-by: Eric Wieser <wieser.eric@gmail.com>

Diff
@@ -35,7 +35,7 @@ open LinearMap
 
 attribute [local ext] TensorProduct.ext
 
-variable (R : Type u) [CommRing R]
+variable (R : Type u) [CommSemiring R]
 
 variable {ι₁ : Type v₁} {ι₂ : Type v₂}
 
@@ -43,9 +43,9 @@ variable [DecidableEq ι₁] [DecidableEq ι₂]
 
 variable (M₁ : ι₁ → Type w₁) (M₁' : Type w₁') (M₂ : ι₂ → Type w₂) (M₂' : Type w₂')
 
-variable [∀ i₁, AddCommGroup (M₁ i₁)] [AddCommGroup M₁']
+variable [∀ i₁, AddCommMonoid (M₁ i₁)] [AddCommMonoid M₁']
 
-variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
+variable [∀ i₂, AddCommMonoid (M₂ i₂)] [AddCommMonoid M₂']
 
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
refactor: replace some [@foo](https://github.com/foo) _ _ _ _ _ ... by named arguments (#8702)

Using Lean4's named arguments, we manage to remove a few hard-to-read explicit function calls [@foo](https://github.com/foo) _ _ _ _ _ ... which used to be necessary in Lean3.

Occasionally, this results in slightly longer code. The benefit of named arguments is readability, as well as to reduce the brittleness of the code when the argument order is changed.

Co-authored-by: Michael Rothgang <rothgami@math.hu-berlin.de>

Diff
@@ -58,7 +58,7 @@ protected def directSum :
   refine LinearEquiv.ofLinear (R := R) (R₂ := R) ?toFun ?invFun ?left ?right
   · refine lift ?_
     refine DirectSum.toModule R _ _ fun i₁ => ?_
-    refine @LinearMap.flip R _ R _ R _ R _ _ _ _ _ _ _ _ _ _ _ _ _ _ ?_
+    refine LinearMap.flip ?_
     refine DirectSum.toModule R _ _ fun i₂ => LinearMap.flip <| ?_
     refine curry ?_
     exact DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂)
@@ -73,9 +73,9 @@ protected def directSum :
   · -- `(_)` prevents typeclass search timing out on problems that can be solved immediately by
     -- unification
     refine TensorProduct.ext ?_
-    refine @DirectSum.linearMap_ext R _ _ _ _ _ _ _ _ (_) _ _ fun i₁ => ?_
-    refine @LinearMap.ext _ _ _ _ _ _ _ _ (_) (_) _ _ _ fun x₁ => ?_
-    refine @DirectSum.linearMap_ext R _ _ _ _ _ _ _ _ (_) _ _ fun i₂ => ?_
+    refine DirectSum.linearMap_ext _ fun i₁ => ?_
+    refine LinearMap.ext fun x₁ => ?_
+    refine DirectSum.linearMap_ext _ fun i₂ => ?_
     refine LinearMap.ext fun x₂ => ?_
     -- porting note: seems much nicer than the `repeat` lean 3 proof.
     simp only [compr₂_apply, comp_apply, id_apply, mk_apply, DirectSum.toModule_lof, map_tmul,
feat: use suppress_compilation in tensor products (#7504)

More principled version of #7281.

Diff
@@ -19,6 +19,8 @@ This file shows that taking `TensorProduct`s commutes with taking `DirectSum`s i
 * `TensorProduct.directSumRight`
 -/
 
+suppress_compilation
+
 universe u v₁ v₂ w₁ w₁' w₂ w₂'
 
 section Ring
chore(LinearAlgebra/DirectSum/TensorProduct): missing lemma (#7399)

We had the lemma about how the forward direction of this equivalence behaves, but not the reverse direction.

Diff
@@ -155,6 +155,13 @@ theorem directSum_lof_tmul_lof (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂)
   simp [TensorProduct.directSum]
 #align tensor_product.direct_sum_lof_tmul_lof TensorProduct.directSum_lof_tmul_lof
 
+@[simp]
+theorem directSum_symm_lof_tmul (i₁ : ι₁) (m₁ : M₁ i₁) (i₂ : ι₂) (m₂ : M₂ i₂) :
+    (TensorProduct.directSum R M₁ M₂).symm
+      (DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂) (m₁ ⊗ₜ m₂)) =
+      (DirectSum.lof R ι₁ M₁ i₁ m₁ ⊗ₜ DirectSum.lof R ι₂ M₂ i₂ m₂) := by
+  rw [LinearEquiv.symm_apply_eq, directSum_lof_tmul_lof]
+
 @[simp]
 theorem directSumLeft_tmul_lof (i : ι₁) (x : M₁ i) (y : M₂') :
     directSumLeft R M₁ M₂' (DirectSum.lof R _ _ i x ⊗ₜ[R] y) =
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,14 +2,11 @@
 Copyright (c) 2018 Kenny Lau. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Kenny Lau, Mario Carneiro, Eric Wieser
-
-! This file was ported from Lean 3 source module linear_algebra.direct_sum.tensor_product
-! leanprover-community/mathlib commit 9b9d125b7be0930f564a68f1d73ace10cf46064d
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.LinearAlgebra.TensorProduct
 import Mathlib.Algebra.DirectSum.Module
+
+#align_import linear_algebra.direct_sum.tensor_product from "leanprover-community/mathlib"@"9b9d125b7be0930f564a68f1d73ace10cf46064d"
 /-!
 # Tensor products of direct sums
 
chore: rename Dfinsupp to DFinsupp (#5822)

See #4354

Diff
@@ -146,7 +146,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
 /-- Tensor products distribute over a direct sum on the right. -/
 def directSumRight : (M₁' ⊗[R] ⨁ i, M₂ i) ≃ₗ[R] ⨁ i, M₁' ⊗[R] M₂ i :=
   TensorProduct.comm R _ _ ≪≫ₗ directSumLeft R M₂ M₁' ≪≫ₗ
-    Dfinsupp.mapRange.linearEquiv fun _ => TensorProduct.comm R _ _
+    DFinsupp.mapRange.linearEquiv fun _ => TensorProduct.comm R _ _
 #align tensor_product.direct_sum_right TensorProduct.directSumRight
 
 variable {M₁ M₁' M₂ M₂'}
@@ -180,7 +180,7 @@ theorem directSumRight_tmul_lof (x : M₁') (i : ι₂) (y : M₂ i) :
     DirectSum.lof R _ _ i (x ⊗ₜ[R] y) := by
   dsimp only [directSumRight, LinearEquiv.trans_apply, TensorProduct.comm_tmul]
   rw [directSumLeft_tmul_lof]
-  exact Dfinsupp.mapRange_single (hf := fun _ => rfl)
+  exact DFinsupp.mapRange_single (hf := fun _ => rfl)
 #align tensor_product.direct_sum_right_tmul_lof TensorProduct.directSumRight_tmul_lof
 
 @[simp]
chore: remove superfluous parentheses in calls to ext (#5258)

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

Diff
@@ -91,7 +91,7 @@ protected def directSum :
                   DirectSum.lof R (ι₁ × ι₂) (fun i => M₁ i.1 ⊗[R] M₂ i.2) (i₁, i₂))
         (DirectSum.toModule R _ _ fun i => map (DirectSum.lof R _ _ _) (DirectSum.lof R _ _ _)) _
         _ <;>
-    [ext (⟨i₁, i₂⟩x₁ x₂) : 4, ext (i₁ i₂ x₁ x₂) : 5]
+    [ext ⟨i₁, i₂⟩ x₁ x₂ : 4, ext i₁ i₂ x₁ x₂ : 5]
   repeat'
     first
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]
@@ -114,7 +114,7 @@ protected def directSum :
           (N := (⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂)
           (φ := fun i : ι₁ × ι₂ => map (DirectSum.lof R _ M₁ i.1) (DirectSum.lof R _ M₂ i.2))) _
         _ <;>
-    [ext (⟨i₁, i₂⟩x₁ x₂) : 4, ext (i₁ i₂ x₁ x₂) : 5]
+    [ext ⟨i₁, i₂⟩ x₁ x₂ : 4, ext i₁ i₂ x₁ x₂ : 5]
   repeat'
     first
       |rw [compr₂_apply]|rw [comp_apply]|rw [id_apply]|rw [mk_apply]|rw [DirectSum.toModule_lof]
feat: port LinearAlgebra.Contraction (#4124)

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Jeremy Tan Jie Rui <reddeloostw@gmail.com> Co-authored-by: Scott Morrison <scott.morrison@gmail.com> Co-authored-by: Yury G. Kudryashov <urkud@urkud.name> Co-authored-by: Moritz Firsching <firsching@google.com> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com> Co-authored-by: Kyle Miller <kmill31415@gmail.com>

Diff
@@ -128,19 +128,19 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
     (lift <|
       DirectSum.toModule R _ _ fun i =>
         (mk R _ _).compr₂ <| DirectSum.lof R ι₁ (fun i => M₁ i ⊗[R] M₂') _)
-    (DirectSum.toModule R _ _ fun i => rtensor _ (DirectSum.lof R ι₁ _ _))
+    (DirectSum.toModule R _ _ fun i => rTensor _ (DirectSum.lof R ι₁ _ _))
     (DirectSum.linearMap_ext R fun i =>
       TensorProduct.ext <|
         LinearMap.ext₂ fun m₁ m₂ => by
           dsimp only [comp_apply, compr₂_apply, id_apply, mk_apply]
-          simp_rw [DirectSum.toModule_lof, rtensor_tmul, lift.tmul, DirectSum.toModule_lof,
+          simp_rw [DirectSum.toModule_lof, rTensor_tmul, lift.tmul, DirectSum.toModule_lof,
             compr₂_apply, mk_apply])
     (TensorProduct.ext <|
       DirectSum.linearMap_ext R fun i =>
         LinearMap.ext₂ fun m₁ m₂ => by
           dsimp only [comp_apply, compr₂_apply, id_apply, mk_apply]
           simp_rw [lift.tmul, DirectSum.toModule_lof, compr₂_apply,
-            mk_apply, DirectSum.toModule_lof, rtensor_tmul])
+            mk_apply, DirectSum.toModule_lof, rTensor_tmul])
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
 
 /-- Tensor products distribute over a direct sum on the right. -/
chore: reenable eta, bump to nightly 2023-05-16 (#3414)

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

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

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

Diff
@@ -50,7 +50,6 @@ variable [∀ i₂, AddCommGroup (M₂ i₂)] [AddCommGroup M₂']
 
 variable [∀ i₁, Module R (M₁ i₁)] [Module R M₁'] [∀ i₂, Module R (M₂ i₂)] [Module R M₂']
 
-set_option synthInstance.etaExperiment true -- Porting note: gets around lean4#2074
 
 /-- The linear equivalence `(⨁ i₁, M₁ i₁) ⊗ (⨁ i₂, M₂ i₂) ≃ (⨁ i₁, ⨁ i₂, M₁ i₁ ⊗ M₂ i₂)`, i.e.
 "tensor product distributes over direct sum". -/
Diff
@@ -140,7 +140,7 @@ def directSumLeft : (⨁ i₁, M₁ i₁) ⊗[R] M₂' ≃ₗ[R] ⨁ i, M₁ i 
       DirectSum.linearMap_ext R fun i =>
         LinearMap.ext₂ fun m₁ m₂ => by
           dsimp only [comp_apply, compr₂_apply, id_apply, mk_apply]
-          simp_rw [DirectSum.toModule_lof, lift.tmul, DirectSum.toModule_lof, compr₂_apply,
+          simp_rw [lift.tmul, DirectSum.toModule_lof, compr₂_apply,
             mk_apply, DirectSum.toModule_lof, rtensor_tmul])
 #align tensor_product.direct_sum_left TensorProduct.directSumLeft
 
feat: port LinearAlgebra.DirectSum.TensorProduct (#2977)

Co-authored-by: Matthew Ballard <matt@mrb.email> Co-authored-by: Eric Wieser <wieser.eric@gmail.com> Co-authored-by: Kevin Buzzard <k.buzzard@imperial.ac.uk> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Dependencies 8 + 427

428 files ported (98.2%)
177711 lines ported (98.3%)
Show graph

The unported dependencies are