algebra.module.graded_moduleMathlib.Algebra.Module.GradedModule

This file has been ported!

Changes since the initial port

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

Changes in mathlib3

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(no changes)

(last sync)

Changes in mathlib3port

mathlib3
mathlib3port
Diff
@@ -259,7 +259,16 @@ def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜
     DirectSum.decomposeAddEquiv
       𝓜 with
     toFun := DirectSum.decomposeAddEquiv 𝓜
-    map_smul' := fun x y => by classical }
+    map_smul' := fun x y => by
+      classical
+      rw [← DirectSum.sum_support_decompose 𝓐 x, map_sum, Finset.sum_smul, map_sum, Finset.sum_smul,
+        Finset.sum_congr rfl fun i hi => _]
+      rw [RingHom.id_apply, ← DirectSum.sum_support_decompose 𝓜 y, map_sum, Finset.smul_sum,
+        map_sum, Finset.smul_sum, Finset.sum_congr rfl fun j hj => _]
+      simp only [(· • ·), DirectSum.decomposeAddEquiv_apply, DirectSum.decompose_coe,
+        DirectSum.Gmodule.smulAddMonoidHom_apply_of_of]
+      convert DirectSum.decompose_coe 𝓜 _
+      rfl }
 #align graded_module.linear_equiv GradedModule.linearEquiv
 -/
 
Diff
@@ -259,16 +259,7 @@ def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜
     DirectSum.decomposeAddEquiv
       𝓜 with
     toFun := DirectSum.decomposeAddEquiv 𝓜
-    map_smul' := fun x y => by
-      classical
-      rw [← DirectSum.sum_support_decompose 𝓐 x, map_sum, Finset.sum_smul, map_sum, Finset.sum_smul,
-        Finset.sum_congr rfl fun i hi => _]
-      rw [RingHom.id_apply, ← DirectSum.sum_support_decompose 𝓜 y, map_sum, Finset.smul_sum,
-        map_sum, Finset.smul_sum, Finset.sum_congr rfl fun j hj => _]
-      simp only [(· • ·), DirectSum.decomposeAddEquiv_apply, DirectSum.decompose_coe,
-        DirectSum.Gmodule.smulAddMonoidHom_apply_of_of]
-      convert DirectSum.decompose_coe 𝓜 _
-      rfl }
+    map_smul' := fun x y => by classical }
 #align graded_module.linear_equiv GradedModule.linearEquiv
 -/
 
Diff
@@ -70,7 +70,7 @@ variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid
 def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
     where
   toFun a :=
-    { toFun := fun b => GSmul.smul a b
+    { toFun := fun b => GSMul.smul a b
       map_zero' := GdistribMulAction.smul_zero _
       map_add' := GdistribMulAction.smul_add _ }
   map_zero' := AddMonoidHom.ext fun a => Gmodule.zero_smul a
@@ -110,7 +110,7 @@ theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
     (y : M j) :
-    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i + j) (GSmul.smul x y) := by
+    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i + j) (GSMul.smul x y) := by
   simp [smul_add_monoid_hom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 -/
@@ -118,7 +118,7 @@ theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M]
 #print DirectSum.Gmodule.of_smul_of /-
 @[simp]
 theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
-    DirectSum.of A i x • of M j y = of M (i + j) (GSmul.smul x y) :=
+    DirectSum.of A i x • of M j y = of M (i + j) (GSMul.smul x y) :=
   smulAddMonoidHom_apply_of_of _ _ _ _
 #align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_of
 -/
@@ -193,9 +193,9 @@ namespace SetLike
 
 #print SetLike.gmulAction /-
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
-    [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
+    [SetLike.GradedSMul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
-    SetLike.toGSmul 𝓐
+    SetLike.toGSMul 𝓐
       𝓜 with
     one_smul := fun ⟨i, m⟩ => Sigma.subtype_ext (zero_add _) (one_smul _ _)
     hMul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ =>
@@ -205,7 +205,7 @@ instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike
 
 #print SetLike.gdistribMulAction /-
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
-    [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
+    [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
     SetLike.gmulAction 𝓐
@@ -216,7 +216,7 @@ instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
 -/
 
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
-  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
+  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]
 
 #print SetLike.gmodule /-
 /-- `[set_like.graded_monoid 𝓐] [set_like.has_graded_smul 𝓐 𝓜]` is the internal version of graded
@@ -225,7 +225,7 @@ instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
     SetLike.gdistribMulAction 𝓐
       𝓜 with
-    smul := fun i j x y => ⟨(x : A) • (y : M), SetLike.GradedSmul.smul_mem x.2 y.2⟩
+    smul := fun i j x y => ⟨(x : A) • (y : M), SetLike.GradedSMul.smul_mem x.2 y.2⟩
     add_smul := fun i j a a' b => Subtype.ext <| add_smul _ _ _
     zero_smul := fun i j b => Subtype.ext <| zero_smul _ _ }
 #align set_like.gmodule SetLike.gmodule
@@ -236,7 +236,7 @@ end SetLike
 namespace GradedModule
 
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
-  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
+  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]
 
 #print GradedModule.isModule /-
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
Diff
@@ -36,23 +36,19 @@ namespace DirectSum
 
 open GradedMonoid
 
-#print DirectSum.GdistribMulAction /-
 /-- A graded version of `distrib_mul_action`. -/
 class GdistribMulAction [AddMonoid ι] [GMonoid A] [∀ i, AddMonoid (M i)] extends
     GMulAction A M where
   smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
   smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
-#align direct_sum.gdistrib_mul_action DirectSum.GdistribMulAction
--/
+#align direct_sum.gdistrib_mul_action DirectSum.GdistribMulActionₓ
 
-#print DirectSum.Gmodule /-
 /-- A graded version of `module`. -/
 class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A] extends
     GdistribMulAction A M where
   add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
   zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
-#align direct_sum.gmodule DirectSum.Gmodule
--/
+#align direct_sum.gmodule DirectSum.Gmoduleₓ
 
 #print DirectSum.GSemiring.toGmodule /-
 /-- A graded version of `semiring.to_module`. -/
Diff
@@ -3,10 +3,10 @@ Copyright (c) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
 -/
-import Mathbin.RingTheory.GradedAlgebra.Basic
-import Mathbin.Algebra.GradedMulAction
-import Mathbin.Algebra.DirectSum.Decomposition
-import Mathbin.Algebra.Module.BigOperators
+import RingTheory.GradedAlgebra.Basic
+import Algebra.GradedMulAction
+import Algebra.DirectSum.Decomposition
+import Algebra.Module.BigOperators
 
 #align_import algebra.module.graded_module from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
 
Diff
@@ -167,7 +167,7 @@ instance module [DecidableEq ι] [GSemiring A] [Gmodule A M] : Module (⨁ i, A
     where
   smul := (· • ·)
   one_smul := one_smul _ _
-  mul_smul := mul_smul _ _
+  hMul_smul := hMul_smul _ _
   smul_add r := (smulAddMonoidHom A M r).map_add
   smul_zero r := (smulAddMonoidHom A M r).map_zero
   add_smul r s x := by simp only [smul_def, map_add, AddMonoidHom.add_apply]
@@ -202,7 +202,8 @@ instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike
     SetLike.toGSmul 𝓐
       𝓜 with
     one_smul := fun ⟨i, m⟩ => Sigma.subtype_ext (zero_add _) (one_smul _ _)
-    mul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ => Sigma.subtype_ext (add_assoc _ _ _) (mul_smul _ _ _) }
+    hMul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ =>
+      Sigma.subtype_ext (add_assoc _ _ _) (hMul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
 -/
 
Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module algebra.module.graded_module
-! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathbin.RingTheory.GradedAlgebra.Basic
 import Mathbin.Algebra.GradedMulAction
 import Mathbin.Algebra.DirectSum.Decomposition
 import Mathbin.Algebra.Module.BigOperators
 
+#align_import algebra.module.graded_module from "leanprover-community/mathlib"@"0b7c740e25651db0ba63648fbae9f9d6f941e31b"
+
 /-!
 # Graded Module
 
Diff
@@ -156,7 +156,7 @@ private theorem mul_smul [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁
     from-- `λ a b c, a • (b • c)` as a bundled hom
       AddMonoidHom.congr_fun
       (AddMonoidHom.congr_fun (AddMonoidHom.congr_fun this a) b) c
-  ext (ai ax bi bx ci cx) : 6
+  ext ai ax bi bx ci cx : 6
   dsimp only [coe_comp, Function.comp_apply, comp_hom_apply_apply, flip_apply, flip_hom_apply]
   rw [smul_add_monoid_hom_apply_of_of, smul_add_monoid_hom_apply_of_of, DirectSum.mulHom_of_of,
     smul_add_monoid_hom_apply_of_of]
Diff
@@ -57,6 +57,7 @@ class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [
 #align direct_sum.gmodule DirectSum.Gmodule
 -/
 
+#print DirectSum.GSemiring.toGmodule /-
 /-- A graded version of `semiring.to_module`. -/
 instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
     [GSemiring A] : Gmodule A A :=
@@ -66,9 +67,11 @@ instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCom
     add_smul := fun i j => GSemiring.add_mul
     zero_smul := fun i j => GSemiring.zero_mul }
 #align direct_sum.gsemiring.to_gmodule DirectSum.GSemiring.toGmodule
+-/
 
 variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
 
+#print DirectSum.gsmulHom /-
 /-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
 @[simps]
 def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
@@ -80,6 +83,7 @@ def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
   map_zero' := AddMonoidHom.ext fun a => Gmodule.zero_smul a
   map_add' a₁ a₂ := AddMonoidHom.ext fun b => Gmodule.add_smul _ _ _
 #align direct_sum.gsmul_hom DirectSum.gsmulHom
+-/
 
 namespace Gmodule
 
@@ -101,24 +105,30 @@ open GradedMonoid DirectSum Gmodule
 instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i)
     where smul x y := smulAddMonoidHom A M x y
 
+#print DirectSum.Gmodule.smul_def /-
 @[simp]
 theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
     x • y = smulAddMonoidHom _ _ x y :=
   rfl
 #align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_def
+-/
 
+#print DirectSum.Gmodule.smulAddMonoidHom_apply_of_of /-
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
     (y : M j) :
     smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i + j) (GSmul.smul x y) := by
   simp [smul_add_monoid_hom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
+-/
 
+#print DirectSum.Gmodule.of_smul_of /-
 @[simp]
 theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
     DirectSum.of A i x • of M j y = of M (i + j) (GSmul.smul x y) :=
   smulAddMonoidHom_apply_of_of _ _ _ _
 #align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_of
+-/
 
 open AddMonoidHom
 
@@ -188,8 +198,7 @@ variable (𝓜 : ι → σ)
 
 namespace SetLike
 
-include σ' A σ M
-
+#print SetLike.gmulAction /-
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
     [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
@@ -198,7 +207,9 @@ instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike
     one_smul := fun ⟨i, m⟩ => Sigma.subtype_ext (zero_add _) (one_smul _ _)
     mul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ => Sigma.subtype_ext (add_assoc _ _ _) (mul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
+-/
 
+#print SetLike.gdistribMulAction /-
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
     [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -208,10 +219,12 @@ instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
     smul_add := fun i j a b c => Subtype.ext <| smul_add _ _ _
     smul_zero := fun i j a => Subtype.ext <| smul_zero _ }
 #align set_like.gdistrib_mul_action SetLike.gdistribMulAction
+-/
 
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
+#print SetLike.gmodule /-
 /-- `[set_like.graded_monoid 𝓐] [set_like.has_graded_smul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
 instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -222,16 +235,16 @@ instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
     add_smul := fun i j a a' b => Subtype.ext <| add_smul _ _ _
     zero_smul := fun i j b => Subtype.ext <| zero_smul _ _ }
 #align set_like.gmodule SetLike.gmodule
+-/
 
 end SetLike
 
 namespace GradedModule
 
-include σ' A σ M
-
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
+#print GradedModule.isModule /-
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
@@ -239,9 +252,11 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
   { Module.compHom _ (DirectSum.decomposeRingEquiv 𝓐 : A ≃+* ⨁ i, 𝓐 i).toRingHom with
     smul := fun a b => DirectSum.decompose 𝓐 a • b }
 #align graded_module.is_module GradedModule.isModule
+-/
 
 attribute [local instance] GradedModule.isModule
 
+#print GradedModule.linearEquiv /-
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
 "The internal version" and "the external version" are isomorphism as `A`-modules.
 -/
@@ -261,6 +276,7 @@ def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜
       convert DirectSum.decompose_coe 𝓜 _
       rfl }
 #align graded_module.linear_equiv GradedModule.linearEquiv
+-/
 
 end GradedModule
 
Diff
@@ -83,6 +83,7 @@ def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
 
 namespace Gmodule
 
+#print DirectSum.Gmodule.smulAddMonoidHom /-
 /-- For graded monoid `A` and a graded module `M` over `A`. `gmodule.smul_add_monoid_hom` is the
 `⨁ᵢ Aᵢ`-scalar multiplication on `⨁ᵢ Mᵢ` induced by `gsmul_hom`. -/
 def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
@@ -91,6 +92,7 @@ def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
     AddMonoidHom.flip <|
       toAddMonoid fun j => AddMonoidHom.flip <| (of M _).compHom.comp <| gsmulHom A M
 #align direct_sum.gmodule.smul_add_monoid_hom DirectSum.Gmodule.smulAddMonoidHom
+-/
 
 section
 
Diff
@@ -250,14 +250,14 @@ def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜
     toFun := DirectSum.decomposeAddEquiv 𝓜
     map_smul' := fun x y => by
       classical
-        rw [← DirectSum.sum_support_decompose 𝓐 x, map_sum, Finset.sum_smul, map_sum,
-          Finset.sum_smul, Finset.sum_congr rfl fun i hi => _]
-        rw [RingHom.id_apply, ← DirectSum.sum_support_decompose 𝓜 y, map_sum, Finset.smul_sum,
-          map_sum, Finset.smul_sum, Finset.sum_congr rfl fun j hj => _]
-        simp only [(· • ·), DirectSum.decomposeAddEquiv_apply, DirectSum.decompose_coe,
-          DirectSum.Gmodule.smulAddMonoidHom_apply_of_of]
-        convert DirectSum.decompose_coe 𝓜 _
-        rfl }
+      rw [← DirectSum.sum_support_decompose 𝓐 x, map_sum, Finset.sum_smul, map_sum, Finset.sum_smul,
+        Finset.sum_congr rfl fun i hi => _]
+      rw [RingHom.id_apply, ← DirectSum.sum_support_decompose 𝓜 y, map_sum, Finset.smul_sum,
+        map_sum, Finset.smul_sum, Finset.sum_congr rfl fun j hj => _]
+      simp only [(· • ·), DirectSum.decomposeAddEquiv_apply, DirectSum.decompose_coe,
+        DirectSum.Gmodule.smulAddMonoidHom_apply_of_of]
+      convert DirectSum.decompose_coe 𝓜 _
+      rfl }
 #align graded_module.linear_equiv GradedModule.linearEquiv
 
 end GradedModule
Diff
@@ -42,7 +42,7 @@ open GradedMonoid
 #print DirectSum.GdistribMulAction /-
 /-- A graded version of `distrib_mul_action`. -/
 class GdistribMulAction [AddMonoid ι] [GMonoid A] [∀ i, AddMonoid (M i)] extends
-  GMulAction A M where
+    GMulAction A M where
   smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
   smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
 #align direct_sum.gdistrib_mul_action DirectSum.GdistribMulAction
@@ -51,7 +51,7 @@ class GdistribMulAction [AddMonoid ι] [GMonoid A] [∀ i, AddMonoid (M i)] exte
 #print DirectSum.Gmodule /-
 /-- A graded version of `module`. -/
 class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A] extends
-  GdistribMulAction A M where
+    GdistribMulAction A M where
   add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
   zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
 #align direct_sum.gmodule DirectSum.Gmodule
Diff
@@ -31,7 +31,7 @@ graded module
 
 section
 
-open DirectSum
+open scoped DirectSum
 
 variable {ι : Type _} (A : ι → Type _) (M : ι → Type _)
 
@@ -174,7 +174,7 @@ end DirectSum
 
 end
 
-open DirectSum BigOperators
+open scoped DirectSum BigOperators
 
 variable {ι R A M σ σ' : Type _}
 
Diff
@@ -57,12 +57,6 @@ class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [
 #align direct_sum.gmodule DirectSum.Gmodule
 -/
 
-/- warning: direct_sum.gsemiring.to_gmodule -> DirectSum.GSemiring.toGmodule is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)], DirectSum.Gmodule.{u1, u2, u2} ι A A _inst_2 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i)) (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4)
-but is expected to have type
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : DirectSum.GSemiring.{u1, u2} ι A _inst_1 (fun (i : ι) => _inst_2 i)], DirectSum.Gmodule.{u1, u2, u2} ι A A _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (DirectSum.GSemiring.toGMonoid.{u1, u2} ι A _inst_1 (fun (i : ι) => _inst_2 i) _inst_3)
-Case conversion may be inaccurate. Consider using '#align direct_sum.gsemiring.to_gmodule DirectSum.GSemiring.toGmoduleₓ'. -/
 /-- A graded version of `semiring.to_module`. -/
 instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
     [GSemiring A] : Gmodule A A :=
@@ -75,12 +69,6 @@ instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCom
 
 variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
 
-/- warning: direct_sum.gsmul_hom -> DirectSum.gsmulHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_5 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_4] {i : ι} {j : ι}, AddMonoidHom.{u2, u3} (A i) (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddCommMonoid.toAddMonoid.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoidHom.addCommMonoid.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))))
-but is expected to have type
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_5 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_4] {i : ι} {j : ι}, AddMonoidHom.{u2, u3} (A i) (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddCommMonoid.toAddMonoid.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoidHom.addCommMonoid.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.gsmul_hom DirectSum.gsmulHomₓ'. -/
 /-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
 @[simps]
 def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
@@ -95,12 +83,6 @@ def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
 
 namespace Gmodule
 
-/- warning: direct_sum.gmodule.smul_add_monoid_hom -> DirectSum.Gmodule.smulAddMonoidHom is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5], AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))
-but is expected to have type
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5], AddMonoidHom.{max u2 u1, max u3 u1} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))
-Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_add_monoid_hom DirectSum.Gmodule.smulAddMonoidHomₓ'. -/
 /-- For graded monoid `A` and a graded module `M` over `A`. `gmodule.smul_add_monoid_hom` is the
 `⨁ᵢ Aᵢ`-scalar multiplication on `⨁ᵢ Mᵢ` induced by `gsmul_hom`. -/
 def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
@@ -117,18 +99,12 @@ open GradedMonoid DirectSum Gmodule
 instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i)
     where smul x y := smulAddMonoidHom A M x y
 
-/- warning: direct_sum.gmodule.smul_def -> DirectSum.Gmodule.smul_def is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_defₓ'. -/
 @[simp]
 theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
     x • y = smulAddMonoidHom _ _ x y :=
   rfl
 #align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_def
 
-/- warning: direct_sum.gmodule.smul_add_monoid_hom_apply_of_of -> DirectSum.Gmodule.smulAddMonoidHom_apply_of_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_ofₓ'. -/
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
     (y : M j) :
@@ -136,9 +112,6 @@ theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M]
   simp [smul_add_monoid_hom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 
-/- warning: direct_sum.gmodule.of_smul_of -> DirectSum.Gmodule.of_smul_of is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_ofₓ'. -/
 @[simp]
 theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
     DirectSum.of A i x • of M j y = of M (i + j) (GSmul.smul x y) :=
@@ -215,12 +188,6 @@ namespace SetLike
 
 include σ' A σ M
 
-/- warning: set_like.gmul_action -> SetLike.gmulAction is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_10 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_6)) (DistribSMul.toSmulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], GradedMonoid.GMulAction.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_9)
-but is expected to have type
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_10 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M _inst_6) (DistribSMul.toSMulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], GradedMonoid.GMulAction.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_9)
-Case conversion may be inaccurate. Consider using '#align set_like.gmul_action SetLike.gmulActionₓ'. -/
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
     [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
@@ -230,12 +197,6 @@ instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike
     mul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ => Sigma.subtype_ext (add_assoc _ _ _) (mul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
 
-/- warning: set_like.gdistrib_mul_action -> SetLike.gdistribMulAction is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M _inst_6) _inst_8] [_inst_10 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_11 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_6)) (DistribSMul.toSmulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.GdistribMulAction.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_10) (fun (i : ι) => AddSubmonoidClass.toAddMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_9 (𝓜 i))
-but is expected to have type
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M _inst_6) _inst_8] [_inst_10 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_11 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M _inst_6) (DistribSMul.toSMulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.GdistribMulAction.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_10) (fun (i : ι) => AddSubmonoidClass.toAddMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_9 (𝓜 i))
-Case conversion may be inaccurate. Consider using '#align set_like.gdistrib_mul_action SetLike.gdistribMulActionₓ'. -/
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
     [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -249,9 +210,6 @@ instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
-/- warning: set_like.gmodule -> SetLike.gmodule is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align set_like.gmodule SetLike.gmoduleₓ'. -/
 /-- `[set_like.graded_monoid 𝓐] [set_like.has_graded_smul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
 instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -272,9 +230,6 @@ include σ' A σ M
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
-/- warning: graded_module.is_module -> GradedModule.isModule is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align graded_module.is_module GradedModule.isModuleₓ'. -/
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
@@ -285,9 +240,6 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
 
 attribute [local instance] GradedModule.isModule
 
-/- warning: graded_module.linear_equiv -> GradedModule.linearEquiv is a dubious translation:
-<too large>
-Case conversion may be inaccurate. Consider using '#align graded_module.linear_equiv GradedModule.linearEquivₓ'. -/
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
 "The internal version" and "the external version" are isomorphism as `A`-modules.
 -/
Diff
@@ -4,7 +4,7 @@ Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
 
 ! This file was ported from Lean 3 source module algebra.module.graded_module
-! leanprover-community/mathlib commit 59cdeb0da2480abbc235b7e611ccd9a7e5603d7c
+! leanprover-community/mathlib commit 0b7c740e25651db0ba63648fbae9f9d6f941e31b
 ! Please do not edit these lines, except to modify the commit id
 ! if you have ported upstream changes.
 -/
@@ -16,6 +16,9 @@ import Mathbin.Algebra.Module.BigOperators
 /-!
 # Graded Module
 
+> THIS FILE IS SYNCHRONIZED WITH MATHLIB4.
+> Any changes to this file require a corresponding PR to mathlib4.
+
 Given an `R`-algebra `A` graded by `𝓐`, a graded `A`-module `M` is expressed as
 `direct_sum.decomposition 𝓜` and `set_like.has_graded_smul 𝓐 𝓜`.
 Then `⨁ i, 𝓜 i` is an `A`-module and is isomorphic to `M`.
@@ -115,10 +118,7 @@ instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i,
     where smul x y := smulAddMonoidHom A M x y
 
 /- warning: direct_sum.gmodule.smul_def -> DirectSum.Gmodule.smul_def is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] (x : DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (y : DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (SMul.smul.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.Gmodule.DirectSum.hasSmul.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x y) (coeFn.{succ (max u1 u3), succ (max u1 u3)} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) => (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u1 u3))} (AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.Gmodule.smulAddMonoidHom.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x) y)
-but is expected to have type
-  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] (x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (y : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)), Eq.{max (succ u3) (succ u1)} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (HSMul.hSMul.{max u3 u2, max u3 u1, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instHSMul.{max u3 u2, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.Gmodule.instSMulDirectSumDirectSum.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x y) (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u2 u3, max u1 u3} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u2 u3, max u1 u3} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.Gmodule.smulAddMonoidHom.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x) y)
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_defₓ'. -/
 @[simp]
 theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
@@ -127,10 +127,7 @@ theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y
 #align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_def
 
 /- warning: direct_sum.gmodule.smul_add_monoid_hom_apply_of_of -> DirectSum.Gmodule.smulAddMonoidHom_apply_of_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (coeFn.{succ (max u1 u3), succ (max u1 u3)} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u1 u3))} (AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) -> (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (DirectSum.Gmodule.smulAddMonoidHom.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M j) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u1, u2, u3} ι (fun {i : ι} => A i) M (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) (GradedMonoid.GMulAction.toGhasSmul.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGmulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
-but is expected to have type
-  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (a : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u2), max (succ u3) (succ u1)} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max u3 u2, max u3 u1} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddZeroClass.toAdd.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max u3 u2, max u3 u1} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.Gmodule.smulAddMonoidHom.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (_x : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (fun (_x : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u3, u2, u1} ι A M (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1)) (GradedMonoid.GMulAction.toGSmul.{u3, u2, u1} ι A M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGMulAction.{u3, u2, u1} ι A M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_ofₓ'. -/
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
@@ -140,10 +137,7 @@ theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 
 /- warning: direct_sum.gmodule.of_smul_of -> DirectSum.Gmodule.of_smul_of is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (SMul.smul.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.Gmodule.DirectSum.hasSmul.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M j) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u1, u2, u3} ι (fun {i : ι} => A i) M (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) (GradedMonoid.GMulAction.toGhasSmul.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGmulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
-but is expected to have type
-  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (HSMul.hSMul.{max u3 u2, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (instHSMul.{max u3 u2, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (DirectSum.Gmodule.instSMulDirectSumDirectSum.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (_x : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (fun (_x : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u3, u2, u1} ι A M (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1)) (GradedMonoid.GMulAction.toGSmul.{u3, u2, u1} ι A M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGMulAction.{u3, u2, u1} ι A M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+<too large>
 Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_ofₓ'. -/
 @[simp]
 theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
@@ -162,7 +156,6 @@ private theorem one_smul [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i,
   unfold One.one
   rw [smul_add_monoid_hom_apply_of_of]
   exact DirectSum.of_eq_of_gradedMonoid_eq (one_smul (GradedMonoid A) <| GradedMonoid.mk i xi)
-#align direct_sum.gmodule.one_smul direct_sum.gmodule.one_smul
 
 -- Almost identical to the proof of `direct_sum.mul_assoc`
 private theorem mul_smul [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁ i, A i)
@@ -185,7 +178,6 @@ private theorem mul_smul [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁
   exact
     DirectSum.of_eq_of_gradedMonoid_eq
       (mul_smul (GradedMonoid.mk ai ax) (GradedMonoid.mk bi bx) (GradedMonoid.mk ci cx))
-#align direct_sum.gmodule.mul_smul direct_sum.gmodule.mul_smul
 
 #print DirectSum.Gmodule.module /-
 /-- The `module` derived from `gmodule A M`. -/
@@ -258,10 +250,7 @@ variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
 /- warning: set_like.gmodule -> SetLike.gmodule is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.Gmodule.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (AddCommMonoid.ofSubmonoidOnSemiring.{u1, u5, u2} ι σ' A _inst_3 _inst_5 _inst_9 𝓐 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_11)
-but is expected to have type
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.Gmodule.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u1, u5, u2} ι σ' A _inst_3 _inst_5 _inst_9 𝓐 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) i) (AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_11)
+<too large>
 Case conversion may be inaccurate. Consider using '#align set_like.gmodule SetLike.gmoduleₓ'. -/
 /-- `[set_like.graded_monoid 𝓐] [set_like.has_graded_smul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
@@ -284,10 +273,7 @@ variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
 /- warning: graded_module.is_module -> GradedModule.isModule is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐], Module.{u2, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))
-but is expected to have type
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐], Module.{u2, max u3 u1} A (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))
+<too large>
 Case conversion may be inaccurate. Consider using '#align graded_module.is_module GradedModule.isModuleₓ'. -/
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
@@ -300,10 +286,7 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
 attribute [local instance] GradedModule.isModule
 
 /- warning: graded_module.linear_equiv -> GradedModule.linearEquiv is a dubious translation:
-lean 3 declaration is
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐] [_inst_15 : DirectSum.Decomposition.{u1, u3, u4} ι M σ (fun (a : ι) (b : ι) => _inst_13 a b) _inst_6 _inst_8 _inst_10 𝓜], LinearEquiv.{u2, u2, u3, max u1 u3} A A _inst_3 _inst_3 (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHomInvPair.ids.{u2} A _inst_3) (RingHomInvPair.ids.{u2} A _inst_3) M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_6 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_7 (GradedModule.isModule.{u1, u2, u3, u4, u5} ι A M σ σ' _inst_1 _inst_3 𝓐 _inst_5 (fun (i : ι) => 𝓜 i) _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 (fun (a : ι) (b : ι) => _inst_13 a b) _inst_14)
-but is expected to have type
-  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐] [_inst_15 : DirectSum.Decomposition.{u1, u3, u4} ι M σ (fun (a : ι) (b : ι) => _inst_13 a b) _inst_6 _inst_8 _inst_10 𝓜], LinearEquiv.{u2, u2, u3, max u3 u1} A A _inst_3 _inst_3 (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHomInvPair.ids.{u2} A _inst_3) (RingHomInvPair.ids.{u2} A _inst_3) M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_6 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_7 (inferInstance.{max (max (succ u1) (succ u2)) (succ u3)} ([mdata noImplicitLambda:1 Module.{u2, max u3 u1} A (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))]) (GradedModule.isModule.{u1, u2, u3, u4, u5} ι A M σ σ' _inst_1 _inst_3 𝓐 _inst_5 𝓜 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 (fun (a : ι) (b : ι) => _inst_13 a b) _inst_14))
+<too large>
 Case conversion may be inaccurate. Consider using '#align graded_module.linear_equiv GradedModule.linearEquivₓ'. -/
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
 "The internal version" and "the external version" are isomorphism as `A`-modules.
Diff
@@ -36,20 +36,30 @@ namespace DirectSum
 
 open GradedMonoid
 
+#print DirectSum.GdistribMulAction /-
 /-- A graded version of `distrib_mul_action`. -/
 class GdistribMulAction [AddMonoid ι] [GMonoid A] [∀ i, AddMonoid (M i)] extends
   GMulAction A M where
   smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
   smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
 #align direct_sum.gdistrib_mul_action DirectSum.GdistribMulAction
+-/
 
+#print DirectSum.Gmodule /-
 /-- A graded version of `module`. -/
 class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A] extends
   GdistribMulAction A M where
   add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
   zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
 #align direct_sum.gmodule DirectSum.Gmodule
+-/
 
+/- warning: direct_sum.gsemiring.to_gmodule -> DirectSum.GSemiring.toGmodule is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) [_inst_1 : DecidableEq.{succ u1} ι] [_inst_2 : AddMonoid.{u1} ι] [_inst_3 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_4 : DirectSum.GSemiring.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i)], DirectSum.Gmodule.{u1, u2, u2} ι A A _inst_2 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_3 i)) (DirectSum.GSemiring.toGmonoid.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_1 a b) A _inst_2 (fun (i : ι) => _inst_3 i) _inst_4)
+but is expected to have type
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : DirectSum.GSemiring.{u1, u2} ι A _inst_1 (fun (i : ι) => _inst_2 i)], DirectSum.Gmodule.{u1, u2, u2} ι A A _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (DirectSum.GSemiring.toGMonoid.{u1, u2} ι A _inst_1 (fun (i : ι) => _inst_2 i) _inst_3)
+Case conversion may be inaccurate. Consider using '#align direct_sum.gsemiring.to_gmodule DirectSum.GSemiring.toGmoduleₓ'. -/
 /-- A graded version of `semiring.to_module`. -/
 instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
     [GSemiring A] : Gmodule A A :=
@@ -62,6 +72,12 @@ instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCom
 
 variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
 
+/- warning: direct_sum.gsmul_hom -> DirectSum.gsmulHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_5 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_4] {i : ι} {j : ι}, AddMonoidHom.{u2, u3} (A i) (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddCommMonoid.toAddMonoid.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoidHom.addCommMonoid.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))))
+but is expected to have type
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_5 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_4] {i : ι} {j : ι}, AddMonoidHom.{u2, u3} (A i) (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddCommMonoid.toAddMonoid.{u3} (AddMonoidHom.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j))))) (AddMonoidHom.addCommMonoid.{u3, u3} (M j) (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) (_inst_3 j))) (_inst_3 (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.gsmul_hom DirectSum.gsmulHomₓ'. -/
 /-- The piecewise multiplication from the `has_mul` instance, as a bundled homomorphism. -/
 @[simps]
 def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
@@ -76,6 +92,12 @@ def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j)
 
 namespace Gmodule
 
+/- warning: direct_sum.gmodule.smul_add_monoid_hom -> DirectSum.Gmodule.smulAddMonoidHom is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5], AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))
+but is expected to have type
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5], AddMonoidHom.{max u2 u1, max u3 u1} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u3 u1, max u3 u1} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))
+Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_add_monoid_hom DirectSum.Gmodule.smulAddMonoidHomₓ'. -/
 /-- For graded monoid `A` and a graded module `M` over `A`. `gmodule.smul_add_monoid_hom` is the
 `⨁ᵢ Aᵢ`-scalar multiplication on `⨁ᵢ Mᵢ` induced by `gsmul_hom`. -/
 def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
@@ -92,12 +114,24 @@ open GradedMonoid DirectSum Gmodule
 instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i)
     where smul x y := smulAddMonoidHom A M x y
 
+/- warning: direct_sum.gmodule.smul_def -> DirectSum.Gmodule.smul_def is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] (x : DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (y : DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (SMul.smul.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.Gmodule.DirectSum.hasSmul.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x y) (coeFn.{succ (max u1 u3), succ (max u1 u3)} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (fun (_x : AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) => (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u1 u3))} (AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) -> (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.Gmodule.smulAddMonoidHom.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x) y)
+but is expected to have type
+  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] (x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (y : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)), Eq.{max (succ u3) (succ u1)} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (HSMul.hSMul.{max u3 u2, max u3 u1, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instHSMul.{max u3 u2, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.Gmodule.instSMulDirectSumDirectSum.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) x y) (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) x) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (max (succ u1) (succ u2)) (succ u3), max (succ u2) (succ u3), max (succ u1) (succ u3)} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max (max u1 u2) u3, max u2 u3, max u1 u3} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u2 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddZeroClass.toAdd.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u1 u2) u3, max u2 u3, max u1 u3} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.Gmodule.smulAddMonoidHom.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) x) y)
+Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_defₓ'. -/
 @[simp]
 theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
     x • y = smulAddMonoidHom _ _ x y :=
   rfl
 #align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_def
 
+/- warning: direct_sum.gmodule.smul_add_monoid_hom_apply_of_of -> DirectSum.Gmodule.smulAddMonoidHom_apply_of_of is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (coeFn.{succ (max u1 u3), succ (max u1 u3)} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (coeFn.{max (succ (max u1 u3)) (succ (max u1 u2)), max (succ (max u1 u2)) (succ (max u1 u3))} (AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (fun (_x : AddMonoidHom.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) => (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) -> (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (AddMonoidHom.hasCoeToFun.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddCommMonoid.toAddMonoid.{max u1 u3} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (AddMonoidHom.addCommMonoid.{max u1 u3, max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)))))) (DirectSum.Gmodule.smulAddMonoidHom.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M j) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u1, u2, u3} ι (fun {i : ι} => A i) M (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) (GradedMonoid.GMulAction.toGhasSmul.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGmulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+but is expected to have type
+  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (a : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) a) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), max (succ u3) (succ u1), max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (fun (_x : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (a : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) a) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (FunLike.coe.{max (max (succ u3) (succ u2)) (succ u1), max (succ u3) (succ u2), max (succ u3) (succ u1)} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (fun (_x : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) => AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) _x) (AddHomClass.toFunLike.{max (max u3 u2) u1, max u3 u2, max u3 u1} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddZeroClass.toAdd.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (AddMonoidHomClass.toAddHomClass.{max (max u3 u2) u1, max u3 u2, max u3 u1} (AddMonoidHom.{max u2 u3, max u1 u3} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addMonoidHomClass.{max u3 u2, max u3 u1} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddCommMonoid.toAddMonoid.{max u3 u1} (AddMonoidHom.{max u1 u3, max u1 u3} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHom.addCommMonoid.{max u3 u1, max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))))))) (DirectSum.Gmodule.smulAddMonoidHom.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (_x : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (fun (_x : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u3, u2, u1} ι A M (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1)) (GradedMonoid.GMulAction.toGSmul.{u3, u2, u1} ι A M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGMulAction.{u3, u2, u1} ι A M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_ofₓ'. -/
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
     (y : M j) :
@@ -105,6 +139,12 @@ theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M]
   simp [smul_add_monoid_hom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 
+/- warning: direct_sum.gmodule.of_smul_of -> DirectSum.Gmodule.of_smul_of is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} (A : ι -> Type.{u2}) (M : ι -> Type.{u3}) [_inst_1 : AddMonoid.{u1} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u3} (M i)] [_inst_4 : DecidableEq.{succ u1} ι] [_inst_5 : GradedMonoid.GMonoid.{u1, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u1, u2, u3} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{succ (max u1 u3)} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (SMul.smul.{max u1 u2, max u1 u3} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.Gmodule.DirectSum.hasSmul.{u1, u2, u3} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => (fun (i : ι) => _inst_2 i) i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6) (coeFn.{max (succ (max u1 u2)) (succ u2), max (succ u2) (succ (max u1 u2))} (AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (fun (_x : AddMonoidHom.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) => (A i) -> (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))) (AddMonoidHom.hasCoeToFun.{u2, max u1 u2} (A i) (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) ((fun (i : ι) => _inst_2 i) i))) (AddMonoid.toAddZeroClass.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u2} (DirectSum.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i)) (DirectSum.addCommMonoid.{u1, u2} ι (fun (i : ι) => A i) (fun (i : ι) => (fun (i : ι) => _inst_2 i) i))))) (DirectSum.of.{u1, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M j) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M j) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M j) (AddCommMonoid.toAddMonoid.{u3} (M j) ((fun (i : ι) => _inst_3 i) j))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (coeFn.{max (succ (max u1 u3)) (succ u3), max (succ u3) (succ (max u1 u3))} (AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (fun (_x : AddMonoidHom.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) => (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) -> (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))) (AddMonoidHom.hasCoeToFun.{u3, max u1 u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddMonoid.toAddZeroClass.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u3} (M (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) ((fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (AddCommMonoid.toAddMonoid.{max u1 u3} (DirectSum.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i)) (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => M i) (fun (i : ι) => (fun (i : ι) => _inst_3 i) i))))) (DirectSum.of.{u1, u3} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u1, u1, u1} ι ι ι (instHAdd.{u1} ι (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u1, u2, u3} ι (fun {i : ι} => A i) M (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) (GradedMonoid.GMulAction.toGhasSmul.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGmulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u1, u2, u3} ι (fun {i : ι} => A i) M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+but is expected to have type
+  forall {ι : Type.{u3}} (A : ι -> Type.{u2}) (M : ι -> Type.{u1}) [_inst_1 : AddMonoid.{u3} ι] [_inst_2 : forall (i : ι), AddCommMonoid.{u2} (A i)] [_inst_3 : forall (i : ι), AddCommMonoid.{u1} (M i)] [_inst_4 : DecidableEq.{succ u3} ι] [_inst_5 : GradedMonoid.GMonoid.{u3, u2} ι A _inst_1] [_inst_6 : DirectSum.Gmodule.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5] {i : ι} {j : ι} (x : A i) (y : M j), Eq.{max (succ u3) (succ u1)} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (HSMul.hSMul.{max u3 u2, max u3 u1, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (instHSMul.{max u3 u2, max u3 u1} ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) x) ((fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) y) (DirectSum.Gmodule.instSMulDirectSumDirectSum.{u3, u2, u1} ι (fun (i : ι) => A i) (fun (i : ι) => M i) _inst_1 (fun (i : ι) => _inst_2 i) (fun (i : ι) => _inst_3 i) (fun (a : ι) (b : ι) => _inst_4 a b) _inst_5 _inst_6)) (FunLike.coe.{max (succ u3) (succ u2), succ u2, max (succ u3) (succ u2)} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (fun (_x : A i) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : A i) => DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) _x) (AddHomClass.toFunLike.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddZeroClass.toAdd.{u2} (A i) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)))) (AddZeroClass.toAdd.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u2, u2, max u3 u2} (AddMonoidHom.{u2, max u2 u3} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))) (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)))) (AddMonoidHom.addMonoidHomClass.{u2, max u3 u2} (A i) (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddMonoid.toAddZeroClass.{u2} (A i) (AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i))) (AddMonoid.toAddZeroClass.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (AddCommMonoid.toAddMonoid.{max u3 u2} (DirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i)) (instAddCommMonoidDirectSum.{u3, u2} ι (fun (i : ι) => A i) (fun (i : ι) => _inst_2 i))))))) (DirectSum.of.{u3, u2} ι (fun (a : ι) (b : ι) => _inst_4 a b) A (fun (i : ι) => _inst_2 i) i) x) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (fun (_x : M j) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M j) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M j) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j)))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M j) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M j) (AddCommMonoid.toAddMonoid.{u1} (M j) (_inst_3 j))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) j) y)) (FunLike.coe.{max (succ u3) (succ u1), succ u1, max (succ u3) (succ u1)} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (fun (_x : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => (fun (x._@.Mathlib.Algebra.Hom.Group._hyg.403 : M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) => DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) _x) (AddHomClass.toFunLike.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddZeroClass.toAdd.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j))))) (AddZeroClass.toAdd.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (AddMonoidHomClass.toAddHomClass.{max u3 u1, u1, max u3 u1} (AddMonoidHom.{u1, max u1 u3} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))) (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)))) (AddMonoidHom.addMonoidHomClass.{u1, max u3 u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddMonoid.toAddZeroClass.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (AddCommMonoid.toAddMonoid.{u1} (M (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (_inst_3 (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)))) (AddMonoid.toAddZeroClass.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (AddCommMonoid.toAddMonoid.{max u3 u1} (DirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i)) (instAddCommMonoidDirectSum.{u3, u1} ι (fun (i : ι) => M i) (fun (i : ι) => _inst_3 i))))))) (DirectSum.of.{u3, u1} ι (fun (a : ι) (b : ι) => _inst_4 a b) M (fun (i : ι) => _inst_3 i) (HAdd.hAdd.{u3, u3, u3} ι ι ι (instHAdd.{u3} ι (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1))) i j)) (GradedMonoid.GSmul.smul.{u3, u2, u1} ι A M (AddZeroClass.toAdd.{u3} ι (AddMonoid.toAddZeroClass.{u3} ι _inst_1)) (GradedMonoid.GMulAction.toGSmul.{u3, u2, u1} ι A M _inst_1 _inst_5 (DirectSum.GdistribMulAction.toGMulAction.{u3, u2, u1} ι A M _inst_1 _inst_5 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) (DirectSum.Gmodule.toGdistribMulAction.{u3, u2, u1} ι A M _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (A i) (_inst_2 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u1} (M i) (_inst_3 i)) _inst_5 _inst_6))) i j x y))
+Case conversion may be inaccurate. Consider using '#align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_ofₓ'. -/
 @[simp]
 theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
     DirectSum.of A i x • of M j y = of M (i + j) (GSmul.smul x y) :=
@@ -147,6 +187,7 @@ private theorem mul_smul [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁
       (mul_smul (GradedMonoid.mk ai ax) (GradedMonoid.mk bi bx) (GradedMonoid.mk ci cx))
 #align direct_sum.gmodule.mul_smul direct_sum.gmodule.mul_smul
 
+#print DirectSum.Gmodule.module /-
 /-- The `module` derived from `gmodule A M`. -/
 instance module [DecidableEq ι] [GSemiring A] [Gmodule A M] : Module (⨁ i, A i) (⨁ i, M i)
     where
@@ -158,6 +199,7 @@ instance module [DecidableEq ι] [GSemiring A] [Gmodule A M] : Module (⨁ i, A
   add_smul r s x := by simp only [smul_def, map_add, AddMonoidHom.add_apply]
   zero_smul x := by simp only [smul_def, map_zero, AddMonoidHom.zero_apply]
 #align direct_sum.gmodule.module DirectSum.Gmodule.module
+-/
 
 end
 
@@ -181,6 +223,12 @@ namespace SetLike
 
 include σ' A σ M
 
+/- warning: set_like.gmul_action -> SetLike.gmulAction is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_10 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_6)) (DistribSMul.toSmulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], GradedMonoid.GMulAction.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_9)
+but is expected to have type
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_10 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M _inst_6) (DistribSMul.toSMulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], GradedMonoid.GMulAction.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_9)
+Case conversion may be inaccurate. Consider using '#align set_like.gmul_action SetLike.gmulActionₓ'. -/
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
     [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   {
@@ -190,6 +238,12 @@ instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike
     mul_smul := fun ⟨i, a⟩ ⟨j, a'⟩ ⟨k, b⟩ => Sigma.subtype_ext (add_assoc _ _ _) (mul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
 
+/- warning: set_like.gdistrib_mul_action -> SetLike.gdistribMulAction is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M _inst_6) _inst_8] [_inst_10 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_11 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M _inst_6)) (DistribSMul.toSmulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.GdistribMulAction.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_10) (fun (i : ι) => AddSubmonoidClass.toAddMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_9 (𝓜 i))
+but is expected to have type
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddMonoid.{u3} M] [_inst_7 : DistribMulAction.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M _inst_6) _inst_8] [_inst_10 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_11 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M _inst_6) (DistribSMul.toSMulZeroClass.{u2, u3} A M (AddMonoid.toAddZeroClass.{u3} M _inst_6) (DistribMulAction.toDistribSMul.{u2, u3} A M (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_6 _inst_7))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.GdistribMulAction.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_10) (fun (i : ι) => AddSubmonoidClass.toAddMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_9 (𝓜 i))
+Case conversion may be inaccurate. Consider using '#align set_like.gdistrib_mul_action SetLike.gdistribMulActionₓ'. -/
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
     [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -203,6 +257,12 @@ instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
+/- warning: set_like.gmodule -> SetLike.gmodule is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.Gmodule.{u1, u2, u3} ι (fun (i : ι) => coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} (coeSort.{succ u5, succ (succ u2)} σ' Type.{u2} (SetLike.hasCoeToSort.{u5, u2} σ' A _inst_5) (𝓐 i)) (AddCommMonoid.ofSubmonoidOnSemiring.{u1, u5, u2} ι σ' A _inst_3 _inst_5 _inst_9 𝓐 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} (coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_11)
+but is expected to have type
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜], DirectSum.Gmodule.{u1, u2, u3} ι (fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) _inst_1 (fun (i : ι) => AddCommMonoid.toAddMonoid.{u2} ((fun (i : ι) => Subtype.{succ u2} A (fun (x : A) => Membership.mem.{u2, u5} A σ' (SetLike.instMembership.{u5, u2} σ' A _inst_5) x (𝓐 i))) i) (AddCommMonoid.ofSubmonoidOnSemiring.{u1, u5, u2} ι σ' A _inst_3 _inst_5 _inst_9 𝓐 i)) (fun (i : ι) => AddCommMonoid.toAddMonoid.{u3} ((fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) i) (AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) (SetLike.gMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 (fun (i : ι) => 𝓐 i) _inst_11)
+Case conversion may be inaccurate. Consider using '#align set_like.gmodule SetLike.gmoduleₓ'. -/
 /-- `[set_like.graded_monoid 𝓐] [set_like.has_graded_smul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
 instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
@@ -223,6 +283,12 @@ include σ' A σ M
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
+/- warning: graded_module.is_module -> GradedModule.isModule is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐], Module.{u2, max u1 u3} A (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))
+but is expected to have type
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐], Module.{u2, max u3 u1} A (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))
+Case conversion may be inaccurate. Consider using '#align graded_module.is_module GradedModule.isModuleₓ'. -/
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
@@ -233,6 +299,12 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
 
 attribute [local instance] GradedModule.isModule
 
+/- warning: graded_module.linear_equiv -> GradedModule.linearEquiv is a dubious translation:
+lean 3 declaration is
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toHasSmul.{u2, u3} A M (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (SMulWithZero.toSmulZeroClass.{u2, u3} A M (MulZeroClass.toHasZero.{u2} A (MulZeroOneClass.toMulZeroClass.{u2} A (MonoidWithZero.toMulZeroOneClass.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)))) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddZeroClass.toHasZero.{u3} M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6))) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toHasAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐] [_inst_15 : DirectSum.Decomposition.{u1, u3, u4} ι M σ (fun (a : ι) (b : ι) => _inst_13 a b) _inst_6 _inst_8 _inst_10 𝓜], LinearEquiv.{u2, u2, u3, max u1 u3} A A _inst_3 _inst_3 (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHomInvPair.ids.{u2} A _inst_3) (RingHomInvPair.ids.{u2} A _inst_3) M (DirectSum.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_6 (DirectSum.addCommMonoid.{u1, u3} ι (fun (i : ι) => coeSort.{succ u4, succ (succ u3)} σ Type.{u3} (SetLike.hasCoeToSort.{u4, u3} σ M _inst_8) (𝓜 i)) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_7 (GradedModule.isModule.{u1, u2, u3, u4, u5} ι A M σ σ' _inst_1 _inst_3 𝓐 _inst_5 (fun (i : ι) => 𝓜 i) _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 (fun (a : ι) (b : ι) => _inst_13 a b) _inst_14)
+but is expected to have type
+  forall {ι : Type.{u1}} {A : Type.{u2}} {M : Type.{u3}} {σ : Type.{u4}} {σ' : Type.{u5}} [_inst_1 : AddMonoid.{u1} ι] [_inst_3 : Semiring.{u2} A] (𝓐 : ι -> σ') [_inst_5 : SetLike.{u5, u2} σ' A] (𝓜 : ι -> σ) [_inst_6 : AddCommMonoid.{u3} M] [_inst_7 : Module.{u2, u3} A M _inst_3 _inst_6] [_inst_8 : SetLike.{u4, u3} σ M] [_inst_9 : AddSubmonoidClass.{u5, u2} σ' A (AddMonoid.toAddZeroClass.{u2} A (AddMonoidWithOne.toAddMonoid.{u2} A (AddCommMonoidWithOne.toAddMonoidWithOne.{u2} A (NonAssocSemiring.toAddCommMonoidWithOne.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3))))) _inst_5] [_inst_10 : AddSubmonoidClass.{u4, u3} σ M (AddMonoid.toAddZeroClass.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) _inst_8] [_inst_11 : SetLike.GradedMonoid.{u1, u2, u5} ι A σ' _inst_5 (MonoidWithZero.toMonoid.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) _inst_1 𝓐] [_inst_12 : SetLike.GradedSmul.{u1, u5, u2, u4, u3} ι σ' A σ M _inst_5 _inst_8 (SMulZeroClass.toSMul.{u2, u3} A M (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (SMulWithZero.toSMulZeroClass.{u2, u3} A M (MonoidWithZero.toZero.{u2} A (Semiring.toMonoidWithZero.{u2} A _inst_3)) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (MulActionWithZero.toSMulWithZero.{u2, u3} A M (Semiring.toMonoidWithZero.{u2} A _inst_3) (AddMonoid.toZero.{u3} M (AddCommMonoid.toAddMonoid.{u3} M _inst_6)) (Module.toMulActionWithZero.{u2, u3} A M _inst_3 _inst_6 _inst_7)))) (AddZeroClass.toAdd.{u1} ι (AddMonoid.toAddZeroClass.{u1} ι _inst_1)) 𝓐 𝓜] [_inst_13 : DecidableEq.{succ u1} ι] [_inst_14 : GradedRing.{u1, u2, u5} ι A σ' (fun (a : ι) (b : ι) => _inst_13 a b) _inst_1 _inst_3 _inst_5 _inst_9 𝓐] [_inst_15 : DirectSum.Decomposition.{u1, u3, u4} ι M σ (fun (a : ι) (b : ι) => _inst_13 a b) _inst_6 _inst_8 _inst_10 𝓜], LinearEquiv.{u2, u2, u3, max u3 u1} A A _inst_3 _inst_3 (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHom.id.{u2} A (Semiring.toNonAssocSemiring.{u2} A _inst_3)) (RingHomInvPair.ids.{u2} A _inst_3) (RingHomInvPair.ids.{u2} A _inst_3) M (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_6 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_7 (inferInstance.{max (max (succ u1) (succ u2)) (succ u3)} ([mdata noImplicitLambda:1 Module.{u2, max u3 u1} A (DirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i))) _inst_3 (instAddCommMonoidDirectSum.{u1, u3} ι (fun (i : ι) => Subtype.{succ u3} M (fun (x : M) => Membership.mem.{u3, u4} M σ (SetLike.instMembership.{u4, u3} σ M _inst_8) x (𝓜 i))) (fun (i : ι) => AddSubmonoidClass.toAddCommMonoid.{u3, u4} M _inst_6 σ _inst_8 _inst_10 (𝓜 i)))]) (GradedModule.isModule.{u1, u2, u3, u4, u5} ι A M σ σ' _inst_1 _inst_3 𝓐 _inst_5 𝓜 _inst_6 _inst_7 _inst_8 _inst_9 _inst_10 _inst_11 _inst_12 (fun (a : ι) (b : ι) => _inst_13 a b) _inst_14))
+Case conversion may be inaccurate. Consider using '#align graded_module.linear_equiv GradedModule.linearEquivₓ'. -/
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
 "The internal version" and "the external version" are isomorphism as `A`-modules.
 -/
Diff
@@ -51,14 +51,14 @@ class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [
 #align direct_sum.gmodule DirectSum.Gmodule
 
 /-- A graded version of `semiring.to_module`. -/
-instance Gsemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
-    [Gsemiring A] : Gmodule A A :=
+instance GSemiring.toGmodule [DecidableEq ι] [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
+    [GSemiring A] : Gmodule A A :=
   { GMonoid.toGMulAction A with
-    smul_add := fun _ _ => Gsemiring.mul_add
-    smul_zero := fun i j => Gsemiring.mul_zero
-    add_smul := fun i j => Gsemiring.add_mul
-    zero_smul := fun i j => Gsemiring.zero_mul }
-#align direct_sum.gsemiring.to_gmodule DirectSum.Gsemiring.toGmodule
+    smul_add := fun _ _ => GSemiring.mul_add
+    smul_zero := fun i j => GSemiring.mul_zero
+    add_smul := fun i j => GSemiring.add_mul
+    zero_smul := fun i j => GSemiring.zero_mul }
+#align direct_sum.gsemiring.to_gmodule DirectSum.GSemiring.toGmodule
 
 variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
 
@@ -125,7 +125,7 @@ private theorem one_smul [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i,
 #align direct_sum.gmodule.one_smul direct_sum.gmodule.one_smul
 
 -- Almost identical to the proof of `direct_sum.mul_assoc`
-private theorem mul_smul [DecidableEq ι] [Gsemiring A] [Gmodule A M] (a b : ⨁ i, A i)
+private theorem mul_smul [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁ i, A i)
     (c : ⨁ i, M i) : (a * b) • c = a • b • c :=
   by
   suffices
@@ -148,7 +148,7 @@ private theorem mul_smul [DecidableEq ι] [Gsemiring A] [Gmodule A M] (a b : ⨁
 #align direct_sum.gmodule.mul_smul direct_sum.gmodule.mul_smul
 
 /-- The `module` derived from `gmodule A M`. -/
-instance module [DecidableEq ι] [Gsemiring A] [Gmodule A M] : Module (⨁ i, A i) (⨁ i, M i)
+instance module [DecidableEq ι] [GSemiring A] [Gmodule A M] : Module (⨁ i, A i) (⨁ i, M i)
     where
   smul := (· • ·)
   one_smul := one_smul _ _

Changes in mathlib4

mathlib3
mathlib4
chore(*): remove empty lines between variable statements (#11418)

Empty lines were removed by executing the following Python script twice

import os
import re


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

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

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

      # Write the modified content back to the file
      with open(file_path, 'w') as file:
        file.write(modified_content)
Diff
@@ -167,11 +167,8 @@ end
 open DirectSum BigOperators
 
 variable {ιA ιM R A M σ σ' : Type*}
-
 variable [AddMonoid ιA] [AddAction ιA ιM] [CommSemiring R] [Semiring A] [Algebra R A]
-
 variable (𝓐 : ιA → σ') [SetLike σ' A]
-
 variable (𝓜 : ιM → σ)
 
 namespace SetLike
chore: remove detrital heartbeat bumps (#10191)

With multiple changes, it is a good time to check if existing set_option maxHeartbeats and set_option synthInstance.maxHeartbeats remain necessary. This brings the number of files with such down from 23 to 9. Most are straight deletions though I did change one proof.

Diff
@@ -211,7 +211,6 @@ namespace GradedModule
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]
 
-set_option maxHeartbeats 300000 in -- Porting note: needs more Heartbeats to elaborate
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
chore(*): rename FunLike to DFunLike (#9785)

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

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

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

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

Diff
@@ -116,7 +116,7 @@ open AddMonoidHom
 private theorem one_smul' [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
     (x : ⨁ i, M i) :
     (1 : ⨁ i, A i) • x = x := by
-  suffices smulAddMonoidHom A M 1 = AddMonoidHom.id (⨁ i, M i) from FunLike.congr_fun this x
+  suffices smulAddMonoidHom A M 1 = AddMonoidHom.id (⨁ i, M i) from DFunLike.congr_fun this x
   apply DirectSum.addHom_ext; intro i xi
   rw [show (1 : DirectSum ιA fun i => A i) = (of A 0) GOne.one by rfl]
   rw [smulAddMonoidHom_apply_of_of]
@@ -135,7 +135,7 @@ private theorem mul_smul' [DecidableEq ιA] [DecidableEq ιB] [GSemiring A] [Gmo
       (AddMonoidHom.compHom AddMonoidHom.flipHom <|
           (smulAddMonoidHom A M).flip.compHom.comp <| smulAddMonoidHom A M).flip
     from-- `fun a b c ↦ a • (b • c)` as a bundled hom
-      FunLike.congr_fun (FunLike.congr_fun (FunLike.congr_fun this a) b) c
+      DFunLike.congr_fun (DFunLike.congr_fun (DFunLike.congr_fun this a) b) c
   ext ai ax bi bx ci cx : 6
   dsimp only [coe_comp, Function.comp_apply, compHom_apply_apply, flip_apply, flipHom_apply]
   rw [smulAddMonoidHom_apply_of_of, smulAddMonoidHom_apply_of_of, DirectSum.mulHom_of_of,
chore: Nsmul -> NSMul, Zpow -> ZPow, etc (#9067)

Normalising to naming convention rule number 6.

Diff
@@ -14,7 +14,7 @@ import Mathlib.Algebra.Module.BigOperators
 # Graded Module
 
 Given an `R`-algebra `A` graded by `𝓐`, a graded `A`-module `M` is expressed as
-`DirectSum.Decomposition 𝓜` and `SetLike.GradedSmul 𝓐 𝓜`.
+`DirectSum.Decomposition 𝓜` and `SetLike.GradedSMul 𝓐 𝓜`.
 Then `⨁ i, 𝓜 i` is an `A`-module and is isomorphic to `M`.
 
 ## Tags
@@ -63,7 +63,7 @@ variable [AddMonoid ιA] [VAdd ιA ιB] [∀ i : ιA, AddCommMonoid (A i)] [∀
 @[simps]
 def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i +ᵥ j) where
   toFun a :=
-    { toFun := fun b => GSmul.smul a b
+    { toFun := fun b => GSMul.smul a b
       map_zero' := GdistribMulAction.smul_zero _
       map_add' := GdistribMulAction.smul_add _ }
   map_zero' := AddMonoidHom.ext fun a => Gmodule.zero_smul a
@@ -98,14 +98,14 @@ theorem smul_def [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
 @[simp]
 theorem smulAddMonoidHom_apply_of_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
     {i j} (x : A i) (y : M j) :
-    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i +ᵥ j) (GSmul.smul x y) := by
+    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i +ᵥ j) (GSMul.smul x y) := by
   simp [smulAddMonoidHom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 
 -- @[simp] -- Porting note: simpNF lint
 theorem of_smul_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
     {i j} (x : A i) (y : M j) :
-    DirectSum.of A i x • of M j y = of M (i +ᵥ j) (GSmul.smul x y) :=
+    DirectSum.of A i x • of M j y = of M (i +ᵥ j) (GSMul.smul x y) :=
   smulAddMonoidHom_apply_of_of _ _ _ _
 #align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_of
 
@@ -177,15 +177,15 @@ variable (𝓜 : ιM → σ)
 namespace SetLike
 
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
-    [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
-  { SetLike.toGSmul 𝓐 𝓜 with
+    [SetLike.GradedSMul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
+  { SetLike.toGSMul 𝓐 𝓜 with
     one_smul := fun ⟨_i, _m⟩ => Sigma.subtype_ext (zero_vadd _ _) (one_smul _ _)
     mul_smul := fun ⟨_i, _a⟩ ⟨_j, _a'⟩ ⟨_k, _b⟩ =>
       Sigma.subtype_ext (add_vadd _ _ _) (mul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
 
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
-    [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
+    [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
   { SetLike.gmulAction 𝓐 𝓜 with
     smul_add := fun _a _b _c => Subtype.ext <| smul_add _ _ _
@@ -193,13 +193,13 @@ instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
 #align set_like.gdistrib_mul_action SetLike.gdistribMulAction
 
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
-  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
+  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]
 
-/-- `[SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]` is the internal version of graded
+/-- `[SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
 instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
   { SetLike.gdistribMulAction 𝓐 𝓜 with
-    smul := fun x y => ⟨(x : A) • (y : M), SetLike.GradedSmul.smul_mem x.2 y.2⟩
+    smul := fun x y => ⟨(x : A) • (y : M), SetLike.GradedSMul.smul_mem x.2 y.2⟩
     add_smul := fun _a _a' _b => Subtype.ext <| add_smul _ _ _
     zero_smul := fun _b => Subtype.ext <| zero_smul _ _ }
 #align set_like.gmodule SetLike.gmodule
@@ -209,7 +209,7 @@ end SetLike
 namespace GradedModule
 
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
-  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
+  [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSMul 𝓐 𝓜]
 
 set_option maxHeartbeats 300000 in -- Porting note: needs more Heartbeats to elaborate
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
feat(Algebra/Module/GradedModule): generalize + to +ᵥ in indicies (#7573)

The action is now of signature A i → M j → M (i +ᵥ j) instead of A i → M j → M (i + j). These are defeq when i and j are of the same type.

This allow the grading type of the ring and module to be different, as long as one acts additively on the other, as requested on Zulip:

@AntoineChambert-Loir said:

In our work with Maria Ines, we had the impression that some basic work on graded stuff is still missing. For example, [...] graduations which are not indexed by the same thing on the ring and on the module (some action of one on the other would be required, of course )

@kbuzzard said:

In alg geom it's pretty common to have the rings indexed by $ℕ$ and the modules by $ℤ$.

Mathlib is rather short on instances for additive actions, but with suitable instances this will allow the ring to be ℕ-graded and the module to be ℤ-graded.

Diff
@@ -27,28 +27,28 @@ section
 
 open DirectSum
 
-variable {ι : Type*} (A : ι → Type*) (M : ι → Type*)
+variable {ιA ιB : Type*} (A : ιA → Type*) (M : ιB → Type*)
 
 namespace DirectSum
 
 open GradedMonoid
 
 /-- A graded version of `DistribMulAction`. -/
-class GdistribMulAction [AddMonoid ι] [GMonoid A] [∀ i, AddMonoid (M i)] extends
-  GMulAction A M where
+class GdistribMulAction [AddMonoid ιA] [VAdd ιA ιB] [GMonoid A] [∀ i, AddMonoid (M i)]
+    extends GMulAction A M where
   smul_add {i j} (a : A i) (b c : M j) : smul a (b + c) = smul a b + smul a c
   smul_zero {i j} (a : A i) : smul a (0 : M j) = 0
 #align direct_sum.gdistrib_mul_action DirectSum.GdistribMulAction
 
 /-- A graded version of `Module`. -/
-class Gmodule [AddMonoid ι] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A] extends
-  GdistribMulAction A M where
+class Gmodule [AddMonoid ιA] [VAdd ιA ιB] [∀ i, AddMonoid (A i)] [∀ i, AddMonoid (M i)] [GMonoid A]
+    extends GdistribMulAction A M where
   add_smul {i j} (a a' : A i) (b : M j) : smul (a + a') b = smul a b + smul a' b
   zero_smul {i j} (b : M j) : smul (0 : A i) b = 0
 #align direct_sum.gmodule DirectSum.Gmodule
 
 /-- A graded version of `Semiring.toModule`. -/
-instance GSemiring.toGmodule [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
+instance GSemiring.toGmodule [AddMonoid ιA] [∀ i : ιA, AddCommMonoid (A i)]
     [h : GSemiring A] : Gmodule A A :=
   { GMonoid.toGMulAction A with
     smul_add := fun _ _ _ => h.mul_add _ _ _
@@ -57,11 +57,11 @@ instance GSemiring.toGmodule [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)]
     zero_smul := fun _ => h.zero_mul _ }
 #align direct_sum.gsemiring.to_gmodule DirectSum.GSemiring.toGmodule
 
-variable [AddMonoid ι] [∀ i : ι, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
+variable [AddMonoid ιA] [VAdd ιA ιB] [∀ i : ιA, AddCommMonoid (A i)] [∀ i, AddCommMonoid (M i)]
 
 /-- The piecewise multiplication from the `Mul` instance, as a bundled homomorphism. -/
 @[simps]
-def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j) where
+def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i +ᵥ j) where
   toFun a :=
     { toFun := fun b => GSmul.smul a b
       map_zero' := GdistribMulAction.smul_zero _
@@ -74,7 +74,7 @@ namespace Gmodule
 
 /-- For graded monoid `A` and a graded module `M` over `A`. `Gmodule.smulAddMonoidHom` is the
 `⨁ᵢ Aᵢ`-scalar multiplication on `⨁ᵢ Mᵢ` induced by `gsmul_hom`. -/
-def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
+def smulAddMonoidHom [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M] :
     (⨁ i, A i) →+ (⨁ i, M i) →+ ⨁ i, M i :=
   toAddMonoid fun _i =>
     AddMonoidHom.flip <|
@@ -85,24 +85,27 @@ section
 
 open GradedMonoid DirectSum Gmodule
 
-instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i) where
+instance [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M] :
+    SMul (⨁ i, A i) (⨁ i, M i) where
   smul x y := smulAddMonoidHom A M x y
 
 @[simp]
-theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
+theorem smul_def [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
+    (x : ⨁ i, A i) (y : ⨁ i, M i) :
     x • y = smulAddMonoidHom _ _ x y := rfl
 #align direct_sum.gmodule.smul_def DirectSum.Gmodule.smul_def
 
 @[simp]
-theorem smulAddMonoidHom_apply_of_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i)
-    (y : M j) :
-    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i + j) (GSmul.smul x y) := by
+theorem smulAddMonoidHom_apply_of_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
+    {i j} (x : A i) (y : M j) :
+    smulAddMonoidHom A M (DirectSum.of A i x) (of M j y) = of M (i +ᵥ j) (GSmul.smul x y) := by
   simp [smulAddMonoidHom]
 #align direct_sum.gmodule.smul_add_monoid_hom_apply_of_of DirectSum.Gmodule.smulAddMonoidHom_apply_of_of
 
 -- @[simp] -- Porting note: simpNF lint
-theorem of_smul_of [DecidableEq ι] [GMonoid A] [Gmodule A M] {i j} (x : A i) (y : M j) :
-    DirectSum.of A i x • of M j y = of M (i + j) (GSmul.smul x y) :=
+theorem of_smul_of [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
+    {i j} (x : A i) (y : M j) :
+    DirectSum.of A i x • of M j y = of M (i +ᵥ j) (GSmul.smul x y) :=
   smulAddMonoidHom_apply_of_of _ _ _ _
 #align direct_sum.gmodule.of_smul_of DirectSum.Gmodule.of_smul_of
 
@@ -110,17 +113,19 @@ open AddMonoidHom
 
 -- Porting note: renamed to one_smul' since DirectSum.Gmodule.one_smul already exists
 -- Almost identical to the proof of `direct_sum.one_mul`
-private theorem one_smul' [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, M i) :
+private theorem one_smul' [DecidableEq ιA] [DecidableEq ιB] [GMonoid A] [Gmodule A M]
+    (x : ⨁ i, M i) :
     (1 : ⨁ i, A i) • x = x := by
   suffices smulAddMonoidHom A M 1 = AddMonoidHom.id (⨁ i, M i) from FunLike.congr_fun this x
   apply DirectSum.addHom_ext; intro i xi
-  rw [show (1 : DirectSum ι fun i => A i) = (of A 0) GOne.one by rfl]
+  rw [show (1 : DirectSum ιA fun i => A i) = (of A 0) GOne.one by rfl]
   rw [smulAddMonoidHom_apply_of_of]
   exact DirectSum.of_eq_of_gradedMonoid_eq (one_smul (GradedMonoid A) <| GradedMonoid.mk i xi)
 
 -- Porting note: renamed to mul_smul' since DirectSum.Gmodule.mul_smul already exists
 -- Almost identical to the proof of `direct_sum.mul_assoc`
-private theorem mul_smul' [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁ i, A i)
+private theorem mul_smul' [DecidableEq ιA] [DecidableEq ιB] [GSemiring A] [Gmodule A M]
+    (a b : ⨁ i, A i)
     (c : ⨁ i, M i) : (a * b) • c = a • b • c := by
   suffices
     (-- `fun a b c ↦ (a * b) • c` as a bundled hom
@@ -140,7 +145,8 @@ private theorem mul_smul' [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : 
       (mul_smul (GradedMonoid.mk ai ax) (GradedMonoid.mk bi bx) (GradedMonoid.mk ci cx))
 
 /-- The `Module` derived from `gmodule A M`. -/
-instance module [DecidableEq ι] [GSemiring A] [Gmodule A M] : Module (⨁ i, A i) (⨁ i, M i) where
+instance module [DecidableEq ιA] [DecidableEq ιB] [GSemiring A] [Gmodule A M] :
+    Module (⨁ i, A i) (⨁ i, M i) where
   smul := (· • ·)
   one_smul := one_smul' _ _
   mul_smul := mul_smul' _ _
@@ -160,30 +166,28 @@ end
 
 open DirectSum BigOperators
 
-variable {ι R A M σ σ' : Type*}
+variable {ιA ιM R A M σ σ' : Type*}
 
-variable [AddMonoid ι] [CommSemiring R] [Semiring A] [Algebra R A]
+variable [AddMonoid ιA] [AddAction ιA ιM] [CommSemiring R] [Semiring A] [Algebra R A]
 
-variable (𝓐 : ι → σ') [SetLike σ' A]
+variable (𝓐 : ιA → σ') [SetLike σ' A]
 
-variable (𝓜 : ι → σ)
+variable (𝓜 : ιM → σ)
 
 namespace SetLike
 
 instance gmulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M] [SetLike.GradedMonoid 𝓐]
     [SetLike.GradedSmul 𝓐 𝓜] : GradedMonoid.GMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
-  { SetLike.toGSmul 𝓐
-      𝓜 with
-    one_smul := fun ⟨_i, _m⟩ => Sigma.subtype_ext (zero_add _) (one_smul _ _)
+  { SetLike.toGSmul 𝓐 𝓜 with
+    one_smul := fun ⟨_i, _m⟩ => Sigma.subtype_ext (zero_vadd _ _) (one_smul _ _)
     mul_smul := fun ⟨_i, _a⟩ ⟨_j, _a'⟩ ⟨_k, _b⟩ =>
-      Sigma.subtype_ext (add_assoc _ _ _) (mul_smul _ _ _) }
+      Sigma.subtype_ext (add_vadd _ _ _) (mul_smul _ _ _) }
 #align set_like.gmul_action SetLike.gmulAction
 
 instance gdistribMulAction [AddMonoid M] [DistribMulAction A M] [SetLike σ M]
     [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜] :
     DirectSum.GdistribMulAction (fun i => 𝓐 i) fun i => 𝓜 i :=
-  { SetLike.gmulAction 𝓐
-      𝓜 with
+  { SetLike.gmulAction 𝓐 𝓜 with
     smul_add := fun _a _b _c => Subtype.ext <| smul_add _ _ _
     smul_zero := fun _a => Subtype.ext <| smul_zero _ }
 #align set_like.gdistrib_mul_action SetLike.gdistribMulAction
@@ -194,8 +198,7 @@ variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
 /-- `[SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]` is the internal version of graded
   module, the internal version can be translated into the external version `gmodule`. -/
 instance gmodule : DirectSum.Gmodule (fun i => 𝓐 i) fun i => 𝓜 i :=
-  { SetLike.gdistribMulAction 𝓐
-      𝓜 with
+  { SetLike.gdistribMulAction 𝓐 𝓜 with
     smul := fun x y => ⟨(x : A) • (y : M), SetLike.GradedSmul.smul_mem x.2 y.2⟩
     add_smul := fun _a _a' _b => Subtype.ext <| add_smul _ _ _
     zero_smul := fun _b => Subtype.ext <| zero_smul _ _ }
@@ -212,7 +215,7 @@ set_option maxHeartbeats 300000 in -- Porting note: needs more Heartbeats to ela
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
-def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
+def isModule [DecidableEq ιA] [DecidableEq ιM] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
   { Module.compHom _ (DirectSum.decomposeRingEquiv 𝓐 : A ≃+* ⨁ i, 𝓐 i).toRingHom with
     smul := fun a b => DirectSum.decompose 𝓐 a • b }
 #align graded_module.is_module GradedModule.isModule
@@ -220,7 +223,7 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
 "The internal version" and "the external version" are isomorphism as `A`-modules.
 -/
-def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜] :
+def linearEquiv [DecidableEq ιA] [DecidableEq ιM] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜] :
     @LinearEquiv A A _ _ (RingHom.id A) (RingHom.id A) _ _ M (⨁ i, 𝓜 i) _
     _ _ (by letI := isModule 𝓐 𝓜; infer_instance) := by
   letI h := isModule 𝓐 𝓜
chore: fix some cases in names (#7469)

And fix some names in comments where this revealed issues

Diff
@@ -72,7 +72,7 @@ def gsmulHom [GMonoid A] [Gmodule A M] {i j} : A i →+ M j →+ M (i + j) where
 
 namespace Gmodule
 
-/-- For graded monoid `A` and a graded module `M` over `A`. `gmodule.smul_add_monoid_hom` is the
+/-- For graded monoid `A` and a graded module `M` over `A`. `Gmodule.smulAddMonoidHom` is the
 `⨁ᵢ Aᵢ`-scalar multiplication on `⨁ᵢ Mᵢ` induced by `gsmul_hom`. -/
 def smulAddMonoidHom [DecidableEq ι] [GMonoid A] [Gmodule A M] :
     (⨁ i, A i) →+ (⨁ i, M i) →+ ⨁ i, M i :=
style: fix wrapping of where (#7149)
Diff
@@ -85,8 +85,8 @@ section
 
 open GradedMonoid DirectSum Gmodule
 
-instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i)
-    where smul x y := smulAddMonoidHom A M x y
+instance [DecidableEq ι] [GMonoid A] [Gmodule A M] : SMul (⨁ i, A i) (⨁ i, M i) where
+  smul x y := smulAddMonoidHom A M x y
 
 @[simp]
 theorem smul_def [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i, A i) (y : ⨁ i, M i) :
chore: banish Type _ and Sort _ (#6499)

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

This has nice performance benefits.

Diff
@@ -27,7 +27,7 @@ section
 
 open DirectSum
 
-variable {ι : Type _} (A : ι → Type _) (M : ι → Type _)
+variable {ι : Type*} (A : ι → Type*) (M : ι → Type*)
 
 namespace DirectSum
 
@@ -160,7 +160,7 @@ end
 
 open DirectSum BigOperators
 
-variable {ι R A M σ σ' : Type _}
+variable {ι R A M σ σ' : Type*}
 
 variable [AddMonoid ι] [CommSemiring R] [Semiring A] [Algebra R A]
 
chore: script to replace headers with #align_import statements (#5979)

Open in Gitpod

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

Diff
@@ -2,17 +2,14 @@
 Copyright (c) 2022 Jujian Zhang. All rights reserved.
 Released under Apache 2.0 license as described in the file LICENSE.
 Authors: Jujian Zhang
-
-! This file was ported from Lean 3 source module algebra.module.graded_module
-! leanprover-community/mathlib commit 59cdeb0da2480abbc235b7e611ccd9a7e5603d7c
-! Please do not edit these lines, except to modify the commit id
-! if you have ported upstream changes.
 -/
 import Mathlib.RingTheory.GradedAlgebra.Basic
 import Mathlib.Algebra.GradedMulAction
 import Mathlib.Algebra.DirectSum.Decomposition
 import Mathlib.Algebra.Module.BigOperators
 
+#align_import algebra.module.graded_module from "leanprover-community/mathlib"@"59cdeb0da2480abbc235b7e611ccd9a7e5603d7c"
+
 /-!
 # Graded Module
 
chore: remove occurrences of semicolon after space (#5713)

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

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

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

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

Diff
@@ -225,7 +225,7 @@ def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
 -/
 def linearEquiv [DecidableEq ι] [GradedRing 𝓐] [DirectSum.Decomposition 𝓜] :
     @LinearEquiv A A _ _ (RingHom.id A) (RingHom.id A) _ _ M (⨁ i, 𝓜 i) _
-    _ _ (by letI := isModule 𝓐 𝓜 ; infer_instance) := by
+    _ _ (by letI := isModule 𝓐 𝓜; infer_instance) := by
   letI h := isModule 𝓐 𝓜
   refine ⟨⟨(DirectSum.decomposeAddEquiv 𝓜).toAddHom, ?_⟩,
     (DirectSum.decomposeAddEquiv 𝓜).symm.toFun, (DirectSum.decomposeAddEquiv 𝓜).left_inv,
chore: remove superfluous parentheses in calls to ext (#5258)

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

Diff
@@ -134,7 +134,7 @@ private theorem mul_smul' [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : 
           (smulAddMonoidHom A M).flip.compHom.comp <| smulAddMonoidHom A M).flip
     from-- `fun a b c ↦ a • (b • c)` as a bundled hom
       FunLike.congr_fun (FunLike.congr_fun (FunLike.congr_fun this a) b) c
-  ext (ai ax bi bx ci cx) : 6
+  ext ai ax bi bx ci cx : 6
   dsimp only [coe_comp, Function.comp_apply, compHom_apply_apply, flip_apply, flipHom_apply]
   rw [smulAddMonoidHom_apply_of_of, smulAddMonoidHom_apply_of_of, DirectSum.mulHom_of_of,
     smulAddMonoidHom_apply_of_of]
chore: convert lambda in docs to fun (#5045)

Found with git grep -n "λ [a-zA-Z_ ]*,"

Diff
@@ -126,13 +126,13 @@ private theorem one_smul' [DecidableEq ι] [GMonoid A] [Gmodule A M] (x : ⨁ i,
 private theorem mul_smul' [DecidableEq ι] [GSemiring A] [Gmodule A M] (a b : ⨁ i, A i)
     (c : ⨁ i, M i) : (a * b) • c = a • b • c := by
   suffices
-    (-- `λ a b c, (a * b) • c` as a bundled hom
+    (-- `fun a b c ↦ (a * b) • c` as a bundled hom
               smulAddMonoidHom
               A M).compHom.comp
         (DirectSum.mulHom A) =
       (AddMonoidHom.compHom AddMonoidHom.flipHom <|
           (smulAddMonoidHom A M).flip.compHom.comp <| smulAddMonoidHom A M).flip
-    from-- `λ a b c, a • (b • c)` as a bundled hom
+    from-- `fun a b c ↦ a • (b • c)` as a bundled hom
       FunLike.congr_fun (FunLike.congr_fun (FunLike.congr_fun this a) b) c
   ext (ai ax bi bx ci cx) : 6
   dsimp only [coe_comp, Function.comp_apply, compHom_apply_apply, flip_apply, flipHom_apply]
chore: formatting issues (#4947)

Co-authored-by: Scott Morrison <scott.morrison@anu.edu.au> Co-authored-by: Parcly Taxel <reddeloostw@gmail.com>

Diff
@@ -216,8 +216,8 @@ set_option maxHeartbeats 300000 in -- Porting note: needs more Heartbeats to ela
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
 def isModule [DecidableEq ι] [GradedRing 𝓐] : Module A (⨁ i, 𝓜 i) :=
-{ Module.compHom _ (DirectSum.decomposeRingEquiv 𝓐 : A ≃+* ⨁ i, 𝓐 i).toRingHom with
-  smul := fun a b => DirectSum.decompose 𝓐 a • b }
+  { Module.compHom _ (DirectSum.decomposeRingEquiv 𝓐 : A ≃+* ⨁ i, 𝓐 i).toRingHom with
+    smul := fun a b => DirectSum.decompose 𝓐 a • b }
 #align graded_module.is_module GradedModule.isModule
 
 /-- `⨁ i, 𝓜 i` and `M` are isomorphic as `A`-modules.
chore: fix typos (#4518)

I ran codespell Mathlib and got tired halfway through the suggestions.

Diff
@@ -211,7 +211,7 @@ namespace GradedModule
 variable [AddCommMonoid M] [Module A M] [SetLike σ M] [AddSubmonoidClass σ' A]
   [AddSubmonoidClass σ M] [SetLike.GradedMonoid 𝓐] [SetLike.GradedSmul 𝓐 𝓜]
 
-set_option maxHeartbeats 300000 in -- Porting note: needs more Hearbeats to elaborate
+set_option maxHeartbeats 300000 in -- Porting note: needs more Heartbeats to elaborate
 /-- The smul multiplication of `A` on `⨁ i, 𝓜 i` from `(⨁ i, 𝓐 i) →+ (⨁ i, 𝓜 i) →+ ⨁ i, 𝓜 i`
 turns `⨁ i, 𝓜 i` into an `A`-module
 -/
feat: port Algebra.Module.GradedModule (#4228)
  • In Algebra.DirectSum.Decomposition, a simps was commented because it was causing a recurrence loop. However, one of the lemma that it generates is needed in this file, so I put the simps back (and fixed the loop)
  • At the end of the file, the local instance GradedModule.isModule was causing a lot of troubles. (It was in fact marked as a dangerous instance in Mathlib3). I removed it and declared it directly in the only result using it, see this Zulip thread

Dependencies 8 + 465

466 files ported (98.3%)
191553 lines ported (98.4%)
Show graph

The unported dependencies are