linear_algebra.direct_sum.tensor_product
⟷
Mathlib.LinearAlgebra.DirectSum.TensorProduct
The following section lists changes to this file in mathlib3 and mathlib4 that occured after the initial port. Most recent changes are shown first. Hovering over a commit will show all commits associated with the same mathlib3 commit.
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(no changes)
(last sync)
mathlib commit https://github.com/leanprover-community/mathlib/commit/65a1391a0106c9204fe45bc73a039f056558cb83
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce64cd319bb6b3e82f31c2d38e79080d377be451
@@ -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"
mathlib commit https://github.com/leanprover-community/mathlib/commit/8ea5598db6caeddde6cb734aa179cc2408dbd345
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/4e24c4bfcff371c71f7ba22050308aa17815626c
@@ -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
-/
mathlib commit https://github.com/leanprover-community/mathlib/commit/2a0ce625dbb0ffbc7d1316597de0b25c1ec75303
@@ -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]
mathlib commit https://github.com/leanprover-community/mathlib/commit/9fb8964792b4237dac6200193a0d533f1b3f7423
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/cca40788df1b8755d5baf17ab2f27dacc2e17acb
@@ -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 . -/
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -31,9 +31,9 @@ section Ring
namespace TensorProduct
-open TensorProduct
+open scoped TensorProduct
-open DirectSum
+open scoped DirectSum
open LinearMap
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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)) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/917c3c072e487b3cccdbfeff17e75b40e45f66cb
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/8d33f09cd7089ecf074b4791907588245aec5d1b
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/75e7fca56381d056096ce5d05e938f63a6567828
@@ -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₂ =>
mathlib commit https://github.com/leanprover-community/mathlib/commit/c89fe2d59ae06402c3f55f978016d1ada444f57e
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/08e1d8d4d989df3a6df86f385e9053ec8a372cc1
@@ -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) :
mathlib commit https://github.com/leanprover-community/mathlib/commit/3cacc945118c8c637d89950af01da78307f59325
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/ce11c3c2a285bbe6937e26d9792fda4e51f3fe1a
@@ -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)) =
mathlib commit https://github.com/leanprover-community/mathlib/commit/62e8311c791f02c47451bf14aa2501048e7c2f33
@@ -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
mathlib commit https://github.com/leanprover-community/mathlib/commit/bd9851ca476957ea4549eb19b40e7b5ade9428cc
Basis.tensorProduct
to heterobasic version (#11844)
In order to achieve this, finsuppTensorFinsupp
and TensorProduct.directSum
are also heterobasic now.
@@ -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]
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)
@@ -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₂']
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
Co-authored-by: Antoine Chambert-Loir <antoine.chambert-loir@math.univ-paris-diderot.fr>
@@ -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"
Homogenises porting notes via capitalisation and addition of whitespace.
It makes the following changes:
@@ -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:
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>
@@ -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₂']
[@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>
@@ -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,
@@ -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
We had the lemma about how the forward direction of this equivalence behaves, but not the reverse direction.
@@ -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) =
@@ -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
@@ -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]
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>
@@ -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]
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>
@@ -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. -/
Now that leanprover/lean4#2210 has been merged, this PR:
set_option synthInstance.etaExperiment true
commands (and some etaExperiment%
term elaborators)set_option maxHeartbeats
commandsCo-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>
@@ -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". -/
closes #3680, see https://leanprover.zulipchat.com/#narrow/stream/287929-mathlib4/topic/Stepping.20through.20simp_rw/near/326712986
@@ -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
The unported dependencies are