/-
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 Mathbin.LinearAlgebra.TensorProduct
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`
-/

section Ring

namespace TensorProduct

open TensorProduct

open DirectSum

open LinearMap

attribute [local ext] TensorProduct.ext

variable (R : Type _) [CommRing R]

variable {ι₁ : Type _} {ι₂ : Type _}

variable [DecidableEq ι₁] [DecidableEq ι₂]

variable (M₁ : ι₁ → Type _) (M₁' : Type _) (M₂ : ι₂ → Type _) (M₂' : Type _)

variable [∀ i₁, AddCommGroup (M₁ i₁)] [AddCommGroup M₁']

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 :
    ((⨁ i₁, M₁ i₁) ⊗[R] ⨁ i₂, M₂ i₂) ≃ₗ[R] ⨁ i : ι₁ × ι₂, M₁ i.1 ⊗[R] M₂ i.2 :=
  by
  refine'
      LinearEquiv.ofLinear
        (lift <|
          DirectSum.toModule R _ _ fun i₁ =>
            flip <|
              DirectSum.toModule R _ _ fun i₂ =>
                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]
  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]
#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
    (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

/- 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₁' ≪≫ₗ
    Dfinsupp.mapRange.linearEquiv fun i => TensorProduct.comm R _ _
#align tensor_product.direct_sum_right TensorProduct.directSumRight

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₂) =
      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

/- 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) :=
  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

/- 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)) =
      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

/- 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) :=
  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

/- 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)) =
      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